haiku/src/kits
Adrien Destugues 463ffbfde4 First steps towards cookie jar thread-safety
* Change the semantics of the iterators copy constructor and assignment
operator: they now return a new iterator for the same cookie jar (and
same url for the UrlIterator). They don't try to point to the same
position as the copied iterator. The only purpose of these is to write
code such as:

Iterator it = jar.GetIterator();

so having a full copy isn't that useful.

* The per-domain cookie lists are now protected with a read-write lock.
The iterators retain a read lock while they are handling cookies from
that list. They get a write lock when doing Remove. Adding a cookie to
the jar also gets the write lock for the matching list

* Fix a memory leak when adding a new domain-list to the jar failed

* Simplify the declaration of the PrivateHashMap type (it would be
even simpler if HashMap was a public API)

* The domain hashmap is now a SynchronizedHashMap. It is locked as long
as an Iterator or UrlIterator exists, which may be a problem as these
are public APIs. Writing safe iterators for an hashmap with concurrent
accesses is not easy, so the API could be modified to return a list of
domains and a list of cookies for a given domain or URL instead. This
would suit the intended uses just as well.

* The jar now store const cookies, so there is no need to lock them for
access/modification. Updating a cookie is done by replacing it with
another one in the jar (with the same domain and value). There is still
the problem of deleting a cookie while other threads may still access
it, this will be fixed by making cookies BReferenceable.
2014-06-11 12:59:33 +02:00
..
app Remove variable length arrays of non-PODs. 2014-01-10 22:31:50 +01:00
bluetooth More work towards hybrid support 2013-08-01 08:54:06 +02:00
debug Implement support for a SYS:ENV attribute on executable 2013-12-01 18:34:07 +01:00
device Use delete[] on array (CID #701816) 2014-02-25 21:31:08 -05:00
game Support building most system libraries for secondary arch 2013-08-06 00:45:22 +02:00
interface BRegion: Style fix, update parameter name 2014-06-04 11:58:07 -04:00
locale LocaleRoster: race condition on catalog loading. 2014-01-19 12:12:57 +01:00
mail Move {en,de}code_base64 to the support kit 2013-12-04 13:51:31 +01:00
media Convert more printf to TRACE in media kit. 2014-04-27 18:03:03 +02:00
midi Lots of B_PRI... insertions to fix errors with DEBUG=1. 2014-06-02 02:00:28 +02:00
midi2 Lots of B_PRI... insertions to fix errors with DEBUG=1. 2014-06-02 02:00:28 +02:00
network First steps towards cookie jar thread-safety 2014-06-11 12:59:33 +02:00
package BDaemonClient: Handle options message fields correctly 2014-05-05 21:29:25 +02:00
print Remove /boot/common for good 2013-10-03 21:52:25 +02:00
screensaver ScreenSaverRunner: Fix segmentation fault loading bad screen saver. 2014-02-25 15:00:13 -05:00
shared AboutWindow: Move to Interface Kit (still private) 2014-03-25 14:17:19 -04:00
storage MimeInfoUpdater: Don't touch the MIME DB 2014-01-26 13:43:05 +01:00
support BString: fix possible infinite loop in _DoReplace 2014-06-08 04:37:16 +12:00
textencoding Support building most system libraries for secondary arch 2013-08-06 00:45:22 +02:00
tracker Tracker: close Desktop window on switch to spatial mode 2014-06-10 00:59:50 -04:00
translation Remove /boot/common for good 2013-10-03 21:52:25 +02:00
CountryFlags.rdef Merge liblocale.so into libbe.so. 2012-04-04 22:44:42 +02:00
Jamfile Get test_app_server to run again 2014-01-22 11:12:22 +01:00
LanguageFlags.rdef Merge liblocale.so into libbe.so. 2012-04-04 22:44:42 +02:00
libbe_test_versions * Made the libbe_test environment basically working under Haiku - to actually 2009-08-19 14:17:13 +00:00
libbe_version.rdef Rework the handling of catalog loading in locale kit : 2011-10-31 08:57:09 +00:00
libbe_versions * Version all libbe symbols - while this enlarges all executables, and isn't 2009-09-23 15:11:20 +00:00