Commit graph

30 commits

Author SHA1 Message Date
Richard Frith-MacDonald
82f18a1372 Allow very large FIFO for buffering extremely high throughput systems.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@40193 72102866-910b-0410-8b05-ffd578937521
2016-11-07 17:47:35 +00:00
Riccardo Mottola
f37d55d564 add GSFIFO to mac project
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@39191 72102866-910b-0410-8b05-ffd578937521
2015-11-23 16:01:15 +00: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
d2d36aaa35 fix uninitialised variable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@38843 72102866-910b-0410-8b05-ffd578937521
2015-07-28 19:24:40 +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
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