History log of /haiku/src/kits/app/TokenSpace.cpp
Revision Date Author Comments
# 0e35d5d2 12-Dec-2011 John Scipione <jscipione@gmail.com>

Change instances of wether in comments to whether. No functional change intended.


# ef889769 29-Oct-2011 Axel Dörfler <axeld@pinc-software.de>

* Reinitialize global locks after a fork (at least those in the Application
Kit).
* This should fix #5668.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42982 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3c0c94f8 30-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Give the token space lock a name.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29e37d88 03-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Made BTokenSpace not throw any exceptions on memory shortage.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33874 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9dbe170a 26-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

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


# 704c03b9 22-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Got rid of that unused and superfluous TokenSpace callback stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17200 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5eeb74a 05-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Let's play SetToken() and NewToken() play nice together.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16234 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5edcfe96 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Cleanup!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45d4256f 24-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Added a BTokenSpace::SetToken() to assign a specific token.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15111 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ceb1e51 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* reverted Adi's premature changes to BWindow and restored _DetermineTarget() and
task_looper() again.
* removed BMessenger::fPreferred - whenever you had to specify "usePreferred" separately,
you don't have to do that anymore - use B_PREFERRED_TOKEN instead.
* fixed BTokenSpace::GetToken() semantics: it will no longer touch the "object" argument
in case of failure.
* Introduced a BWindow::_DistributeMessage() that will be part of the event dispatcher
counterpart to the app_server (the other will be _DetermineTarget()).
* Made it easier to use Michael's Message4 implementation: just add the following line
to your UserBuildConfig:
AppendToConfigVar DEFINES : HAIKU_TOP src : USING_MESSAGE4 : global ;
* Introduced ServerWindow::HandlerMessenger() and FocusMessenger() - the first will
target the client handler, while the other will target the preferred handler of the
client looper (usually the view having focus).
* Fixed dano message unflattening in the Message4 code.
* Changed BMessage::PrintToStream() to no longer use macros in the Message4 implementation.
* I hope that's all - it's a huge change, but it's all connected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17de8ec2 19-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

GetToken() is supposed to always set the _option argument - not only on success.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15032 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d081112c 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* removed tokens are no longer put on a stack and reused - every token is only
used once now. If tokens were reused, you could eventually target the wrong
(but valid again) messenger.
* removed unused stuff (like GetList()).
* some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15028 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef571f67 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Cleanup. Added BTokenSpace::GetList(), though it's probably not needed after all
(we can still remove it later if needed).
Added B_SERVER_TOKEN type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4b64fa6 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

GetToken() did not check for the correct token type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a84bd95f 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13442 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76441bab 15-May-2004 DarkWyrm <darkwyrm@gmail.com>

Add header
Minor tweaks to BClipboard


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7587 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e35d5d2e5ef3d288e056d60ef1b16dc399eaa0c 12-Dec-2011 John Scipione <jscipione@gmail.com>

Change instances of wether in comments to whether. No functional change intended.


# ef88976995d531bab82cce00f0badfb65faa271a 29-Oct-2011 Axel Dörfler <axeld@pinc-software.de>

* Reinitialize global locks after a fork (at least those in the Application
Kit).
* This should fix #5668.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42982 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3c0c94f81c7f56142305fd803fe01e2726b23b3e 30-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Give the token space lock a name.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29e37d884277ecf79735206faa776287d03c239f 03-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Made BTokenSpace not throw any exceptions on memory shortage.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33874 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9dbe170a694e59988263a752b746b6a82a5ff277 26-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

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


# 704c03b9e6c8686496ab214b37044c34cd0c6294 22-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Got rid of that unused and superfluous TokenSpace callback stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17200 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5eeb74ac0a9de3096f9df92471f6aaf5b40306a 05-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Let's play SetToken() and NewToken() play nice together.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16234 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5edcfe961946df304cc90d04f304c8e2fbc5b4a6 03-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Cleanup!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15806 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45d4256f2d1ffe7c48bd137296ef50e4be377b33 24-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Added a BTokenSpace::SetToken() to assign a specific token.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15111 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ceb1e519c0447147b1d8b54a324bb7fedd3a606 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* reverted Adi's premature changes to BWindow and restored _DetermineTarget() and
task_looper() again.
* removed BMessenger::fPreferred - whenever you had to specify "usePreferred" separately,
you don't have to do that anymore - use B_PREFERRED_TOKEN instead.
* fixed BTokenSpace::GetToken() semantics: it will no longer touch the "object" argument
in case of failure.
* Introduced a BWindow::_DistributeMessage() that will be part of the event dispatcher
counterpart to the app_server (the other will be _DetermineTarget()).
* Made it easier to use Michael's Message4 implementation: just add the following line
to your UserBuildConfig:
AppendToConfigVar DEFINES : HAIKU_TOP src : USING_MESSAGE4 : global ;
* Introduced ServerWindow::HandlerMessenger() and FocusMessenger() - the first will
target the client handler, while the other will target the preferred handler of the
client looper (usually the view having focus).
* Fixed dano message unflattening in the Message4 code.
* Changed BMessage::PrintToStream() to no longer use macros in the Message4 implementation.
* I hope that's all - it's a huge change, but it's all connected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17de8ec2148bed65b7c2e73bff49830ed8050e49 19-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

GetToken() is supposed to always set the _option argument - not only on success.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15032 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d081112cb7248eae9284e2aba7d528265c513049 18-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* removed tokens are no longer put on a stack and reused - every token is only
used once now. If tokens were reused, you could eventually target the wrong
(but valid again) messenger.
* removed unused stuff (like GetList()).
* some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15028 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef571f678cf415df1a3de180d0cef31c372a476e 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Cleanup. Added BTokenSpace::GetList(), though it's probably not needed after all
(we can still remove it later if needed).
Added B_SERVER_TOKEN type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13451 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4b64fa6c8cf964f4c9f0f96a786afeff68072cb 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

GetToken() did not check for the correct token type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a84bd95ff7e600f678f37f3294047c14ca0d1ee3 05-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13442 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76441bab6ebb9132d0bb0ab623087bd2b9e861e0 15-May-2004 DarkWyrm <darkwyrm@gmail.com>

Add header
Minor tweaks to BClipboard


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7587 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96