Files
haiku-beta6/src/kits/app/Jamfile
T
Axel Dörfler 9dbe170a69 Implemented direct message passing for local targets; this fixes a deadlock
with PostMessage() in case the message queue is full.
Some notes:
* for synchronous replies, we don't use this mechanism yet, but it could be
  extended to do that as well.
* the code looks so complicated because we need a way to access the looper's
  queue without locking it (to prevent deadlocks); like Dano's solution, I've
  abused BTokenSpace to store a BDirectMessageTarget with a BHandler.
* we also need to decouple the lifetime of a looper's queue from its target,
  as we cannot lock the looper, and therefore, can't guarantee it stays valid
  as long as we're accessing it outside of BLooper.
* init_clipboard() now needs to be done after the global constructors have
  been called - since sending messages now needs gDefaultTokens to be initialized.
  Since this is done per image, it shouldn't cause any troubles, though.
* some minor cleanup, removed unused _msg_cache_cleanup_() and friends.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 13:59:56 +00:00

64 lines
1.3 KiB
Plaintext

SubDir HAIKU_TOP src kits app ;
# If defined allows to run applications without the registrar
# -- for development only, of course.
if $(RUN_WITHOUT_REGISTRAR) {
local defines = [ FDefines RUN_WITHOUT_REGISTRAR ] ;
SubDirCcFlags $(defines) ;
SubDirC++Flags $(defines) ;
}
# If defined allows to run applications without the app server
# -- needed until the app server runs on our kernel.
RUN_WITHOUT_APP_SERVER ?= 0 ;
if $(RUN_WITHOUT_APP_SERVER) != 0 {
local defines = [ FDefines RUN_WITHOUT_APP_SERVER ] ;
SubDirCcFlags $(defines) ;
SubDirC++Flags $(defines) ;
}
UsePrivateHeaders shared app interface kernel ;
UseHeaders $(TARGET_PRIVATE_KERNEL_HEADERS) : true ;
SetSubDirSupportedPlatforms haiku libbe_test ;
MergeObject <libbe>app_kit.o :
AppDefs.cpp
Application.cpp
AppMisc.cpp
AppServerLink.cpp
AreaLink.cpp
Cursor.cpp
Clipboard.cpp
dano_message.cpp
DesktopLink.cpp
DirectMessageTarget.cpp
Handler.cpp
InitTerminateLibBe.cpp
Invoker.cpp
LinkReceiver.cpp
LinkSender.cpp
Looper.cpp
LooperList.cpp
Message.cpp
MessageFilter.cpp
MessageQueue.cpp
MessageRunner.cpp
Messenger.cpp
MessageUtils.cpp
PropertyInfo.cpp
PortLink.cpp
r5_message.cpp
RegistrarDefs.cpp
RegistrarThread.cpp
RegistrarThreadManager.cpp
Roster.cpp
RosterPrivate.cpp
Server.cpp
ServerLink.cpp
ServerMemoryAllocator.cpp
TokenSpace.cpp
TypeConstants.cpp
;