Commit graph

69 commits

Author SHA1 Message Date
Richard Frith-Macdonald
1a8c379be8 Improve chances of threads being removed from pool when the limit is decreased. 2023-02-03 16:50:35 +00:00
Wolfgang Lux
7fa1246f24 Raise exception when attempting to insert object with nil key 2023-01-25 11:04:51 +01:00
Wolfgang Lux
941c6e70aa Remove exception handler block that just would incorrectly unlock a lock 2023-01-24 17:19:32 +01:00
Richard Frith-Macdonald
bc8e65e380 Record last change 2023-01-20 14:02:46 +00:00
Richard Frith-Macdonald
5cc01b1ef4 New release 2023-01-13 14:07:46 +00:00
Richard Frith-Macdonald
71f24ca382 Add support for thread naming 2022-07-06 15:05:36 +01:00
Richard Frith-Macdonald
99e01fe21e Cope with objects which can't be copied (ie -copy returns the receiver). 2019-08-08 15:02:04 +01:00
Richard Frith-Macdonald
573793ce5a Allow caches to be configured programmatically 2019-04-16 11:00:05 +01:00
Richard Frith-Macdonald
3bf5d81b15 Improvements for subclassing 2018-03-27 18:45:51 +01:00
Richard Frith-Macdonald
2378e82aaf make -terminate: method usable from other threads 2017-07-13 08:56:55 +01:00
Richard Frith-MacDonald
16b09c5202 add option for writing a whole block in one go
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@39039 72102866-910b-0410-8b05-ffd578937521
2015-10-07 13:54:54 +00:00
Richard Frith-MacDonald
08cf714574 New class
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38845 72102866-910b-0410-8b05-ffd578937521
2015-07-29 08:07:44 +00:00
Niels Grewe
6f267319e3 Optionally allow the caller to specify the time it wants to block on an
empty FIFO. This supplements the existing method of having a timeout on
the FIFO, and does not raise an excepion when the wait time is too long.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38814 72102866-910b-0410-8b05-ffd578937521
2015-07-17 20:08:38 +00:00
Niels Grewe
74d1c92669 Implement -sizeInBytesExcluding: on GSFIFO
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38809 72102866-910b-0410-8b05-ffd578937521
2015-07-16 12:57:56 +00:00
Richard Frith-MacDonald
3085456143 experimental changes to memory usagfe accounting
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38800 72102866-910b-0410-8b05-ffd578937521
2015-07-15 14:48:19 +00:00
Niels Grewe
30a77897f3 Fix potential race condition when getting the top object without
removing it. (previously, we had a window between returning a peeked
pointer and retaining it where another thread might have been able to
pop and release the object).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38475 72102866-910b-0410-8b05-ffd578937521
2015-05-05 11:32:38 +00:00
Niels Grewe
0f514c0ed4 Add methods to peek at the top/front item in a FIFO without removing it.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38474 72102866-910b-0410-8b05-ffd578937521
2015-05-05 07:57:34 +00:00
Niels Grewe
80276abfa1 Use -autorelease rather than -release when returning objects from a FIFO.
Fixes a bug where a returned reference would already be invalid because
the FIFO was the last owner of the object


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38462 72102866-910b-0410-8b05-ffd578937521
2015-04-28 13:28:01 +00:00
Richard Frith-MacDonald
c110b9139e add code to treat a FIFO as a container
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38286 72102866-910b-0410-8b05-ffd578937521
2015-01-09 15:14:53 +00:00
Riccardo Mottola
af798e503d Import inttypes.h for pointer formatting
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38169 72102866-910b-0410-8b05-ffd578937521
2014-11-12 07:26:04 +00:00
Riccardo Mottola
4f02e79f2e Forward-declare NSRecursiveLock, not NSLock
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38168 72102866-910b-0410-8b05-ffd578937521
2014-11-12 07:23:52 +00:00
Richard Frith-MacDonald
b8120c7b7e iYavor's fix for bug #42732
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@37992 72102866-910b-0410-8b05-ffd578937521
2014-07-13 08:34:20 +00:00
Richard Frith-MacDonald
000bf4a523 add GSUniqued
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@37812 72102866-910b-0410-8b05-ffd578937521
2014-04-26 09:26:59 +00:00
Niels Grewe
298f38c629 Fix calculation of the timeout for a cooperating get or put (it was multiplied by 1000 where
it should have been divided by 1000)


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@37362 72102866-910b-0410-8b05-ffd578937521
2013-11-05 10:15:00 +00:00
Richard Frith-MacDonald
62959bec70 fixes for new release
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@36997 72102866-910b-0410-8b05-ffd578937521
2013-08-21 08:47:28 +00:00
Richard Frith-MacDonald
7dcd2bd08b minor bugfix/improvments
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@36755 72102866-910b-0410-8b05-ffd578937521
2013-06-25 09:39:19 +00:00
Sebastian Reitenbach
cd2ae25fd1 * GSThreadPool.h, GSCache.m
shutup clang warnings
OK rfm



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@36078 72102866-910b-0410-8b05-ffd578937521
2013-02-07 14:11:25 +00:00
Richard Frith-MacDonald
dd0b17ac3c thread exist safety fixup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@36058 72102866-910b-0410-8b05-ffd578937521
2013-02-03 06:37:42 +00:00
Niels Grewe
5f028bd548 Change -initWithObjects:count: declaration to match the superclass one in gnustep-base trunk.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@34496 72102866-910b-0410-8b05-ffd578937521
2012-01-11 16:16:12 +00:00
Richard Frith-MacDonald
bdd2b7ce2c improve configurability
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@34057 72102866-910b-0410-8b05-ffd578937521
2011-10-25 11:18:36 +00:00
Richard Frith-MacDonald
2a19015dc9 attempt tweak to avoid clang/llvm problem
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33794 72102866-910b-0410-8b05-ffd578937521
2011-08-29 05:30:50 +00:00
Richard Frith-MacDonald
c04f6b42ca implement locking for multiple producer/consumer
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33780 72102866-910b-0410-8b05-ffd578937521
2011-08-24 11:26:01 +00:00
Richard Frith-MacDonald
f7697069ce more stats updates
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33285 72102866-910b-0410-8b05-ffd578937521
2011-06-12 11:18:41 +00:00
Richard Frith-MacDonald
769d715041 add support for stats
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33278 72102866-910b-0410-8b05-ffd578937521
2011-06-11 14:41:59 +00:00
Richard Frith-MacDonald
71d2b71d96 Support cache refresh via delegate.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33253 72102866-910b-0410-8b05-ffd578937521
2011-06-06 08:25:49 +00:00
Richard Frith-MacDonald
dde5501c2b use condition locks to avoid polling/spinning
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33251 72102866-910b-0410-8b05-ffd578937521
2011-06-05 09:14:05 +00:00
Richard Frith-MacDonald
e1bae0aab8 threading tweaks and doc improvments
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33243 72102866-910b-0410-8b05-ffd578937521
2011-06-04 14:50:40 +00:00
Richard Frith-MacDonald
a840b7fbe7 make it clear we don't message items in FIFO
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33232 72102866-910b-0410-8b05-ffd578937521
2011-06-02 09:24:57 +00:00
Richard Frith-MacDonald
b5bd053574 Add non-blocking FIFO functions/methods
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33064 72102866-910b-0410-8b05-ffd578937521
2011-05-19 06:53:21 +00:00
Richard Frith-MacDonald
6ed76b045c update version number for next release
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@32497 72102866-910b-0410-8b05-ffd578937521
2011-03-08 10:59:46 +00:00
Richard Frith-MacDonald
de5b713420 remove unused headers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@32003 72102866-910b-0410-8b05-ffd578937521
2011-02-07 15:32:44 +00:00
Riccardo Mottola
ed730dcfa1 Complete includes and use typedef instead of #define
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31602 72102866-910b-0410-8b05-ffd578937521
2010-11-11 20:32:28 +00:00
Riccardo Mottola
6c465a5ec3 use always class_getInstanceSize() on GNUSTEP for all runtimes and define a compatibility macro for old macs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31601 72102866-910b-0410-8b05-ffd578937521
2010-11-11 17:40:30 +00:00
Richard Frith-MacDonald
6630d3d098 try to get instance size on all systems
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31600 72102866-910b-0410-8b05-ffd578937521
2010-11-11 17:29:35 +00:00
Riccardo Mottola
e77f41047b mac 10.4 compatibility definitions
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31596 72102866-910b-0410-8b05-ffd578937521
2010-11-10 00:15:16 +00:00
Richard Frith-MacDonald
a0c5ad644e Add a simple thread pooling utility.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31464 72102866-910b-0410-8b05-ffd578937521
2010-10-01 18:51:30 +00:00
Richard Frith-MacDonald
d3ea09ddac add shared pool
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31457 72102866-910b-0410-8b05-ffd578937521
2010-10-01 10:55:47 +00:00
Richard Frith-MacDonald
fa6594c545 improve linked list api
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31440 72102866-910b-0410-8b05-ffd578937521
2010-09-29 14:04:18 +00:00
Richard Frith-MacDonald
927e7df2f7 add some diagnostics
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31400 72102866-910b-0410-8b05-ffd578937521
2010-09-23 15:39:47 +00:00
Richard Frith-MacDonald
7c651824a0 Tools for more efficient multithrerading than NSOperation allows.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@31396 72102866-910b-0410-8b05-ffd578937521
2010-09-22 12:34:35 +00:00