SysFn23/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 2: Line 2:


----
----
 
Если очередь сообщений пуста, ждёт появления сообщения в очереди,
Если очередь сообщений пуста, ждёт появления сообщения в очереди, но не более указанного времени. Затем считывает сообщение из очереди.
но не более указанного времени. Затем считывает сообщение из очереди.


Параметры:
Параметры:
* eax = 23 - номер функции
:* eax = 23 - номер функции
* ebx = таймаут (в сотых долях секунды)
:* ebx = таймаут (в сотых долях секунды)
 
Возвращаемое значение:
Возвращаемое значение:
* eax = 0 - очередь сообщений пуста
:* eax = 0 - очередь сообщений пуста
* иначе eax = событие ([[Ru/api/kernel#Список событий|смотри список событий]])
:* иначе eax = событие ([[Ru/api/kernel#Список событий|смотри список событий]])
 
Замечания:
Замечания:
* Учитываются только те события, которые входят в маску, устанавливаемую функцией 40. По умолчанию это события перерисовки, нажатия на клавиши и на кнопки.
:* Учитываются только те события, которые входят в маску,
* Для проверки, есть ли сообщение в очереди, используйте функцию 11. Чтобы ждать сколь угодно долго, используйте функцию 10.
::устанавливаемую [[SysFn40/ru|функцией 40]]. По умолчанию это события
* Передача ebx=0 приводит к моментальному возвращению eax=0.
::перерисовки, нажатия на клавиши и на кнопки.
* При текущей реализации произойдёт немедленный возврат из функции с eax=0, если сложение ebx с текущим значением счётчика времени вызовет 32-битное переполнение.
:* Для проверки, есть ли сообщение в очереди, используйте [[SysFn11/ru|функцию 11]].
::Чтобы ждать сколь угодно долго, используйте [[SysFn10/ru|функцию 10]].
:* Передача ebx=0 приводит к моментальному возвращению eax=0.
:* При текущей реализации произойдёт немедленный возврат из функции
::с eax=0, если сложение ebx с текущим значением счётчика времени
::вызовет 32-битное переполнение.


'''Константы для регистров:'''
::eax - SF_WAIT_EVENT_TIMEOUT (23)


{{System_functions}}
{{System_functions}}
[[Category: SysCalls]]
[[Category: SysCalls]]

Latest revision as of 18:56, 16 January 2016

Функция 23 - ожидать события с таймаутом


Если очередь сообщений пуста, ждёт появления сообщения в очереди, но не более указанного времени. Затем считывает сообщение из очереди.

Параметры:

  • eax = 23 - номер функции
  • ebx = таймаут (в сотых долях секунды)

Возвращаемое значение:

Замечания:

  • Учитываются только те события, которые входят в маску,
устанавливаемую функцией 40. По умолчанию это события
перерисовки, нажатия на клавиши и на кнопки.
  • Для проверки, есть ли сообщение в очереди, используйте функцию 11.
Чтобы ждать сколь угодно долго, используйте функцию 10.
  • Передача ebx=0 приводит к моментальному возвращению eax=0.
  • При текущей реализации произойдёт немедленный возврат из функции
с eax=0, если сложение ebx с текущим значением счётчика времени
вызовет 32-битное переполнение.

Константы для регистров:

eax - SF_WAIT_EVENT_TIMEOUT (23)