Nick Terrell
a8daa2d683
Signal before unlocking in pool.c
2018-11-08 10:45:53 -08:00
Yann Collet
fbd5dfc1b1
changed POOL_resize() return type to int
...
return is now just en error code.
This guarantee that `ctx` remains valid after POOL_resize().
Gets rid of internal POOL_free() operation.
2018-06-22 12:14:59 -07:00
Yann Collet
243cd9d8bb
add a cond_broadcast after resize
...
to make sure all threads (notably newly available threads)
get awaken to immediately process potential items in the queue.
2018-06-21 18:04:58 -07:00
Yann Collet
818e72b4d5
added extended POOL test
...
abrupt end + downsizing with running jobs remaining in queue.
also : POOL_resize() requires numThreads >= 1
2018-06-21 14:58:59 -07:00
Yann Collet
6de249c1c6
fixed: bug when counting nb of active threads
...
when queueSize > 1
also : added a test in testpool.c
verifying resizing is effective.
2018-06-20 18:28:49 -07:00
Yann Collet
6b48eb12c0
change control of threadLimit
...
now limits maximum nb of active threads
even when queueSize > 1.
2018-06-20 14:35:39 -07:00
Yann Collet
62469c9f41
fixed wrong size in pthread struct transfer
2018-06-19 20:14:03 -07:00
Yann Collet
166901dc72
reduced POOL_resize() restriction
...
It's not necessary to ensure that no job is ongoing.
The pool is only expanded, existing threads are preserved.
In case of error, the only option is to return NULL and terminate the thread pool anyway.
2018-06-19 18:07:18 -07:00
Yann Collet
4567c57199
finalized POOL_resize()
...
POOL_ctx* POOL_resize(POOL_ctx* ctx, size_t numThreads)
The function may fail, and returns a NULL pointer in this case.
2018-06-19 16:03:12 -07:00
Yann Collet
1c714fda3f
introduced POOL_resize()
...
not complete yet :
finalize behavior in case of unfinished expansion
2018-06-18 20:46:39 -07:00
Yann Collet
997e4d0ccd
added POOL_tryAdd()
2018-01-18 14:39:51 -08:00
Yann Collet
61e5a1adfc
removed direct call to malloc() from pool.c
2017-10-31 17:43:24 -07:00
Yann Collet
86b4fe5b45
adjustCParams : restored previous behavior
...
unknowns srcSize presumed small if there is a dictionary (dictSize>0)
and presumed large otherwise.
2017-09-28 18:14:28 -07:00
Nick Terrell
6c41adfb28
[libzstd] pthread function prefixed with ZSTD_
...
* `sed -i 's/pthread_/ZSTD_pthread_/g' lib/{,common,compress,decompress,dictBuilder}/*.[hc]`
* Fix up `lib/common/threading.[hc]`
* `sed -i s/PTHREAD_MUTEX_LOCK/ZSTD_PTHREAD_MUTEX_LOCK/g lib/compress/zstdmt_compress.c`
2017-09-27 11:48:48 -07:00
Yann Collet
3128e03be6
updated license header
...
to clarify dual-license meaning as "or"
2017-09-08 00:09:23 -07:00
Nick Terrell
423b133568
[POOL] Allow free on NULL when multithreading is disabled
2017-09-05 11:18:13 -07:00
Nick Terrell
02033be08c
[pool] Visual Studios disallows empty structs
2017-08-28 17:19:01 -07:00
Nick Terrell
26dc040a7b
[pool] Accept custom allocators
2017-08-24 17:01:41 -07:00
Nick Terrell
89dc856cae
[pool] Fix formatting
2017-08-24 16:48:32 -07:00
Yann Collet
7db552676e
reduced pool queue to 0 to save memory
...
fixed : pool performance when jobs are fires fast and queueSize==0
2017-08-19 15:07:54 -07:00
Yann Collet
32fb407c9d
updated a bunch of headers
...
for the new license
2017-08-18 16:52:05 -07:00
Stella Lau
73ba58955f
Signal after finishing job when queueSize=0
2017-08-01 20:12:06 -07:00
Stella Lau
1d76da1d87
Replace marker with queueEmpty variable and update pool.h comment
2017-08-01 12:30:16 -07:00
Stella Lau
5adceeed01
Allow queueSize=0 in pool.c and update poolTests
2017-07-31 10:10:16 -07:00
Yann Collet
a90b16e150
Visual blind fix 2
2017-07-20 15:57:55 -07:00
Yann Collet
16261e6951
buffer pool can be invoked from multiple threads
2017-07-11 14:14:07 -07:00
Yann Collet
6056e4c3eb
added POOL_sizeof() for single-thread
2017-06-02 11:36:47 -07:00
Yann Collet
c4a5a21c5c
created ZSTDMT_sizeof_CCtx() and POOL_sizeof()
...
required by ZSTD_sizeofCCtx() while adding a ZSTDMT_CCtx*
2017-06-01 17:56:14 -07:00
Nick Terrell
e628eaf87a
Fix pool.c threading.h import
2017-01-26 15:29:10 -08:00
cyan4973
2e3b659ae1
fixed minor warnings (Visual, conversion, doxygen)
2017-01-20 14:43:09 -08:00
Yann Collet
0f984d94c4
changed MT enabling macro to ZSTD_MULTITHREAD
2017-01-19 14:05:07 -08:00
Nick Terrell
bb13387d7d
Fix pool for threading.h
2016-12-31 19:10:47 -05:00
Yann Collet
3b9d434356
extended ZSTDMT code support for non-MT systems and WIN32 (preliminary)
2016-12-31 16:32:19 +01:00
Yann Collet
3b29dbd9e8
new zstdmt version using generic treadpool
2016-12-31 06:04:25 +01:00
Yann Collet
c6a6417458
bench correctly measures time for multi-threaded compression (posix only)
2016-12-31 03:31:26 +01:00
Nick Terrell
e777a5be6b
Add a thread pool for ZSTDMT and COVER
2016-12-29 23:39:44 -08:00