The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Операционные системы > HP-UX
.
Google unix.com



HP-UX HP-UX (Hewlett Packard UNIX) является Hewlett-Packard Собственная реализации на Unix операционной системы, основанной на System V.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
добавить вывод запроса на переменную, которые будут использоваться в другой запрос hazno Shell программирование и сценарии 0 03-24-2009 08:52 PM
Mac OS X: Почему ваш Mac, возможно, не спать или находиться в режиме сна iBot OS X Поддержка RSS 0 03-19-2009 10:50 PM
Localtime для конвертирования unixtime AshishK UNIX перспективных И опытных пользователей 2 10-30-2007 10:22 AM
Perl + Localtime () Optimus_P Shell программирование и сценарии 3 07-09-2003 06:32 PM
спать Анна UNIX для чайников Вопросы И Ответы 5 07-11-2001 12:52 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценка: Thread Rating: 1 votes, 4.00 average. Режимы дисплея
Old 06-29-2009
nsvora nsvora is offline
Зарегистрированный пользователь
  
 

Регистрация: июнь 2009
Сообщений: 2
И спать Localtime запроса

Привет,
Я работаю на HPUX заявку, и я был запрос относительно сна И Localtime система вызова в HPUX.
Вот код, который мы имеем:

Const uint32_t WAKE_INTERVAL_SEC (30 * 60);
а (True) (

/ / Узнайте, какое время он является
времени (И currentTime);

/ / Резьба по согласованию с wakeup часов 30 минут т.е. если сейчас 9:20 wakeup после 10 минут,
/ / Если это время 9:05, просыпаться после 25 минут.
/ / Расчет оставшегося количества секунд в полчаса.
sleepTime \u003d WAKE_INTERVAL_SEC - (currentTime% WAKE_INTERVAL_SEC);
в то время как (1) (

сон (sleepTime);

/ / Делаем что регулярная работа
tptr \u003d Localtime (И currentTime);

если (12 \u003d\u003d tptr-> tm_hour И И tptr-> tm_min <WAKE_INTERVAL_MIN)
(
/ / Полдень работу
)
)

Ожидаемое поведение:
Как упоминалось выше код, мы ожидаем, что каждые полчаса, некоторые работы, которую предстоит сделать, и если это время бывает от 12 до 12:30 мы также делать полдень работы.

Фактическое поведение:
Большую часть времени он работает, как ожидалось. Но иногда, спать, как представляется, выход нескольких секунд до 12:30, и поэтому логика неуспешно и делает работу в полдень. В идеале я хотел бы ожидать, что условия работы полдень на провал, поскольку нить имеет проснулся в 12:30 и, следовательно, она не может satisify полудня работы состоянии. (Trace в журнале показывает, что регулярная работа началась в 12:30, но сама лесозаготовок заняло бы некоторое время, и я подозреваю, сон может иметь проснулся рано)

Вопрос:
- Можно спать просыпаться досрочно времени (помимо SIGALRM)? Существуют ли какие-либо другие условия, в которых могли бы спать просыпаться до запланированного времени?
- Можно Localtime используется для сравнения вернуть то время?
- Возможно ли, что Есть какое-то время сделали корректировки внутри (может быть для внутренних часов дрейфа и т.д.), что приводит в сон начинает второе раньше, чем ожидается, или по местному времени делать какие-то корректировки в какой-то причине?

Любой вклад в этом отношении ценятся.

Благодаря И Regards,
NSV
Old 06-29-2009
Джим Макнамара jim mcnamara is offline Forum Staff  
...@...
  
 

Регистрация: Февраль 2004
Местонахождение: Н. М.
Сообщения: 5798
Почему бы не использовать CRON или планировать свой код? Эти построены для запуска команд или сценариев в точно вовремя.

Плюс, сон (1) не гарантируется спать ровно одну секунду.
Old 06-30-2009
nsvora nsvora is offline
Зарегистрированный пользователь
  
 

Регистрация: июнь 2009
Сообщений: 2
Привет Джим,
Спасибо за ответ.
Собственно нитей может проснуться в любое время основывается на планировщика, так что логика заключается в том, чтобы проверить время нить нужно спать, чтобы ее привести в соответствие с 30-минутными интервалами.

С уважением,
nsvora
Old 07-01-2009
Джим Макнамара jim mcnamara is offline Forum Staff  
...@...
  
 

Регистрация: Февраль 2004
Местонахождение: Н. М.
Сообщения: 5798
Я попытался передать это ясно:

Вы не можете гарантировать, как именно это долгий сон. Вы должны добавить некоторые отстойные (помадка фактор) в секундах расчет, так или иначе, она не собирается работать в абсолютно каждый раз - пример предполагает вы POSIX совместимо времени - то есть. не скачок секунд.:

Код:
calculate duration of sleep:
time_t how_long_to_sleep=1800;
how_long_to_sleep-= time(NULL) % 1800;
sleep(!how_long_to_sleep ? 1800 : how_long_to_sleep);

Время теста после wakeup:

Код:
time_t now=time(NULL);
now=now % 1800;
if( now < 2 && now > 1797)
   // sleep period ended close enough
else
  // sleep period is off by too much
fi

Кроме того, можно попробовать usleep (стоимость), который имеет тонкие гранулярности в мс, но опять значение является минимальным. Оно может быть больше. Например, более высокий приоритет, чем это показывается.
Reply

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код Вне
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 01:46 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0