haiku/headers/private
Pawel Dziepak b167307526 kernel: Properly synchronize suspending new thread
After load_image() the child thread is suspended and the parent is
expected to resume it later. However, it is possible that the parent
attempts to resume its child after it has been notified that the image
had been loaded but before the child managed to suspend itself. In such
case the child would suspends itself after that wake up attempt and,
consequently will not be ever resumed.

To mitigate that problem flag Thread::going_to_suspend has been added
which helps synchronizing thread suspension and continuation in a similar
way that "traditional" thread blocking is performed. This means that
the child should behave in a following manner: set its going_to_suspend flag,
notify the parent (i.e. any thread that may want to resume it), acquire
its scheduler_lock and suspend itself if the going_to_suspend flag is set.
The parent should follow pattern: clear going_to_suspend flag of the thread
that is about to be resumed, acquire that thread scheduler_lock and enqueue
it in a run queue if it is suspended.

Thanks Oliver for reporting the bug and identifying what causes it.
2014-03-17 02:40:12 +01:00
..
app app_server & interface kit: support fill rules. 2014-03-11 17:27:42 +01:00
audio
binary_compatibility BControl: Add icon support 2013-12-22 02:48:25 +01:00
bluetooth Adding debug file to bluetooth. 2013-01-12 20:01:28 +01:00
debug Move comment to correct function. 2013-05-01 19:52:00 -04:00
device power: Remove old cpufreq interface 2013-11-22 05:30:14 +01:00
drivers PCI: moved IDE api flags to PCI.h 2013-11-28 18:38:45 +01:00
file_systems ramdisk: Switch to CLI command for user interface 2013-11-30 17:02:49 +01:00
firewire kernel: atomic_*() functions rework 2013-11-05 22:32:59 +01:00
fs_shell Merge branch 'scheduler' 2014-01-17 04:06:15 +01:00
graphics radeon_hd: Rework dp aux functions to take connector index 2014-02-03 20:20:13 -06:00
index_server Add a CLucene full-text add-on. 2010-10-28 15:22:52 +00:00
input Implemented the patch on #7963 in a different way. 2011-10-31 18:09:24 +00:00
interface app_server & interface kit: support fill rules. 2014-03-11 17:27:42 +01:00
kernel kernel: Properly synchronize suspending new thread 2014-03-17 02:40:12 +01:00
libroot Merge branch 'scheduler' 2014-01-17 04:06:15 +01:00
locale Fix relying on order of static object destruction in Locale Kit. 2012-11-26 01:19:27 +01:00
mail * Put ServerConnection into the BPrivate namespace as it should have been. 2011-11-02 22:56:50 +00:00
media Merge branch 'scheduler' 2014-01-17 04:06:15 +01:00
midi
mount * Removed now obsolete notification (this was not even used in Tracker 2009-10-07 19:31:57 +00:00
net ...and also fix a mismatched prototype 2014-02-11 13:26:32 +01:00
notification * revert '43157 as the files are actually needed. I still don't understand how I managed to build everything without them ... 2011-11-03 12:49:18 +00:00
package build fix follow up on status_t/ssize_t changes. 2014-02-11 18:26:41 +01:00
print Remove remaining unnecessary 'volatile' qualifiers 2013-11-06 00:03:07 +01:00
runtime_loader runtime loader: Export get_executable_architecture() function 2013-11-17 02:09:36 +01:00
screen_saver ScreenSaverSettings: Silly indentiation fix 2014-02-25 14:58:37 -05:00
shared Move ZlibDecompressor to libshared 2014-02-11 12:06:38 +01:00
storage mime/Database: Add SetIcon[ForType]() BBitmap* version 2014-01-25 11:53:47 +01:00
support kernel: atomic_*() functions rework 2013-11-05 22:32:59 +01:00
syslog_daemon
system arm/atomic: round of atomic function changes 2014-02-15 11:46:12 +01:00
textencoding
tracker Fix crash when dragging files onto nav menus. 2012-09-03 16:28:47 -04:00
usb_vision some copyright headers clean up 2010-04-12 21:02:09 +00:00
userlandfs Should have been part of r37678. io_request_is_vip() support. 2010-07-22 11:09:32 +00:00
virtio virtio: add queue_is_full(), queue_is_empty(), queue_size() hooks. 2013-09-18 17:43:39 +02:00
vmdk Moved vmdkimage.h to a shareable place, cleaned it up a bit, and renamed it to 2009-10-01 03:08:46 +00:00