haiku/headers/private
Ingo Weinhold 6bfd06d1ff BRoster::Launch() eventually launches the application in question
in several steps:
1. early pre-registration with the registrar ("I wanna launch the
   app, make sure noone interferes.")
2. load the app image
3. finish pre-registration with the registrar ("I have launched
   the app, here is its team ID.")
4. start app main thread
5. send "on launch" messages to the app (argv, refs, others)

If the app is already running or being launched, 1. fails with a
conclusive error code and returns the team ID and the pre-registration
token of the app. Steps 2 - 4 are skipped and only the messages are
delivered using the team ID returned by 1.

This change fixes a race condition: The failed early pre-registration
request obviously cannot return the team ID, if the other thread
launching the app has not finished step 3 yet. Thus the argv/refs
message would not get delivered and Launch() would not return the
correct team ID.

Now we wait for the pre-registration to be finished in this case, using
the former _IsAppPreRegistered() mechanism, which already provided
such a waiting feature for one request. It has been extended to
accomodate an arbitrary number of waiting requests and renamed to
_IsAppRegistered().

This fixed bug #763.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-31 17:54:16 +00:00
..
app BRoster::Launch() eventually launches the application in question 2006-08-31 17:54:16 +00:00
audio * added a bunch of drivers by Siarzhuk Zharski 2006-05-29 09:54:03 +00:00
debug Added support for looking up symbols of other team to libdebug. The 2005-07-16 21:12:32 +00:00
disk_scanner
drivers Fixed some bugs, partially by Oscar Lesta. 2005-07-19 17:19:02 +00:00
graphics * Obviously, the i9xx family has changed the order of the PCI mappings, so we need 2006-07-27 08:32:36 +00:00
input input_server saves its settings on change, sending itself a 'Save' request message 2006-07-07 15:38:53 +00:00
interface * UTF8ToCharCode() only skipped 3 bytes for a 4 byte character. 2006-08-29 22:20:18 +00:00
kernel * send_signal_etc() now handles a pid_t of -1 specially, but not yet really correct 2006-08-29 01:41:16 +00:00
libroot Made our glue code compatible to BeOS again. IOW executables compiled for Haiku will 2006-01-06 03:48:11 +00:00
mail Tried to get MDR to compile under Zeta RC3 but to no avail, with lots of 2006-01-01 23:59:24 +00:00
media build media kit with debug enabled, even for release builds 2006-03-07 13:24:19 +00:00
midi
net * Fixed build of libnetapi.so - it probably won't work for now, though, have a look 2006-08-29 00:19:23 +00:00
opengl/GL/internal Internal Mesa3D's private declaration use everywhere in Mesa code. 2005-06-26 13:54:42 +00:00
print Clean up. 2005-11-14 19:08:35 +00:00
runtime_loader Now supports symbolic links correctly, and no longer loads the same shared 2006-06-27 00:07:42 +00:00
screen_saver * ScreenCornerSelector is now a BControl and fully keyboard navigable. 2006-06-09 16:03:16 +00:00
shared added core and core 2 ids 2006-08-24 10:33:50 +00:00
storage * integration of vector icons with the registrar and the mime data base 2006-08-29 17:06:23 +00:00
syslog_daemon Implemented syslog support for the kernel debug output. Not fancy at all yet, but 2006-01-24 20:28:52 +00:00
textencoding use const char for parameters, uint to avoid warnings, and strcasecmp for name comparisons 2004-11-11 07:35:47 +00:00
tracker Added private libtracker headers, shared with Deskbar. 2005-05-23 00:24:17 +00:00
usb_vision * added a bunch of drivers by Siarzhuk Zharski 2006-05-29 09:54:03 +00:00