Commit graph

26 commits

Author SHA1 Message Date
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
4b5fcddbc8 Expose GSIOThread, add easier customisation of FIFO, make IOThread pool a little
safer with checks for finished/cancelled thread and lock protection of count.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38506 72102866-910b-0410-8b05-ffd578937521
2015-05-16 10:31:08 +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
Richard Frith-MacDonald
f8bd2919a3 tweaks for osx
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38198 72102866-910b-0410-8b05-ffd578937521
2014-11-23 17:30:01 +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
98874b40a0 64bit format tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@36995 72102866-910b-0410-8b05-ffd578937521
2013-08-21 08:06:58 +00:00
Richard Frith-MacDonald
d29eb60b77 tweak formats
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@36260 72102866-910b-0410-8b05-ffd578937521
2013-03-04 12:43:53 +00:00
Richard Frith-MacDonald
b003dbbf7f match stats output to description
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@34059 72102866-910b-0410-8b05-ffd578937521
2011-10-25 11:51:10 +00:00
Richard Frith-MacDonald
2ca74e1017 tweak description and fix comment
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@34058 72102866-910b-0410-8b05-ffd578937521
2011-10-25 11:35:27 +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
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
cd5df0b3ba fix error in locking
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33779 72102866-910b-0410-8b05-ffd578937521
2011-08-23 12:45:04 +00:00
Richard Frith-MacDonald
3c056486d0 fix locking error
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33648 72102866-910b-0410-8b05-ffd578937521
2011-07-27 04:37:50 +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
f05f968d4d Add/remove multiple items in one go
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33284 72102866-910b-0410-8b05-ffd578937521
2011-06-12 08:24:37 +00:00
Richard Frith-MacDonald
7b8ee4e46b fix off by one error
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33283 72102866-910b-0410-8b05-ffd578937521
2011-06-12 07:42:22 +00:00
Richard Frith-MacDonald
3b505b67b5 tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@33279 72102866-910b-0410-8b05-ffd578937521
2011-06-11 14:46:27 +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
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
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
6a4b4db806 add a FIFO implementation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@32914 72102866-910b-0410-8b05-ffd578937521
2011-04-20 10:22:24 +00:00