Официальный форум KolibriOS
Текущее время: Чт фев 21, 2019 7:06 am

Часовой пояс: UTC+03:00

Начать новую тему  Ответить на тему  [ 3 сообщения ] 
Автор Сообщение
 Заголовок сообщения: thread switching and message sending
СообщениеДобавлено: Пн июн 09, 2014 8:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс май 11, 2014 9:21 pm
Сообщения: 97
The "create thread" call (f.51,1) seems to return immediately, returning a TID.
I assume that thread switching takes place during the next "wait event" (f.10) (and f.11?) when the event queue is empty.

1. Is this correct?

2. Can the slot number be obtained from a thread before the switch has taken place?

3. Is it possible to request the OS to switch to a windowless thread?

4. f72 allows to send message 2 and 3 to the active window. Can we send message 1 (redraw request)?

5. How to send a message to an inactive thread?

Greetings from Seppe

Вернуться к началу
 Заголовок сообщения: Re: thread switching and message sending
СообщениеДобавлено: Пн июн 09, 2014 11:50 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
1) This issue requires further investigation. Earlier KolibriOS had a simple task manager - the threads switched around the ring. Subsequently, due to the need to implement USB stack, task manager has become more complex.

2) It is possible, but requires investigation. If I'm not mistaken, the creation of processes and threads are isolated by a pair of commands CLI / STI.

3) Windowless threads have equal rights with threads having a window. However, AFAIK, in kernel API does not have this feature.

4) This sub-function is not implemented in f.72. Generally any excess redrawing windows is useless waste of resources. The application should as little as possible call of f.1.

5) Today we have two possibilities:
5.1) Function 60 - Inter Process Communication (IPC)
5.2) Function 68, subfunction 22 - open named memory area
Function 68, subfunction 23 - close named memory area

If I am wrong, then let other developers will contribute their correction.

Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!

Вернуться к началу
 Заголовок сообщения: Re: thread switching and message sending
СообщениеДобавлено: Ср авг 13, 2014 5:14 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1617
1. Partially. Thread switching can occur for two reasons: a) the current thread has nothing to do and decided to sleep, and b) the current thread is executing too long and the kernel has decided to give CPU to other thread. Waiting for event when event queue is empty is one of sleep functions, though not the only one, and goes to a). You can't control b) outside of kernel/drivers at all.
2. In general, no. Thread switching due to reason b) can occur at any time, including the moment just before returning from 51.1. If you are lucky, it is possible that it will never occur during development, but think about not-so-lucky users of your code.
For 3)4)5) I have nothing to add to the answer of Mario_r4.

Сделаем мир лучше!

Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 3 сообщения ] 

Часовой пояс: UTC+03:00

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB