Commit graph

274 commits

Author SHA1 Message Date
Michael Ploujnikov
fc15a2ac2c Merge commit '6f07e4eedc6b624b1f9ae1004ad3e6a77027e028' into second-tp-attempt
Conflicts:
	src/backend/threads.c
2010-01-20 21:41:14 -05:00
Michael Ploujnikov
a22bb5e54f show the state of the thread in question 2010-01-20 17:09:37 -05:00
Michael Ploujnikov
571c265ccd minor fixes: remove an old comment and change another 2010-01-20 07:58:22 -05:00
Christian Thaeter
6f07e4eedc one more signal/wait for syncing 2010-01-20 01:04:12 +01:00
Christian Thaeter
95fed7fd0e remove thread counters (for now)
counting the threads had a race when creating threads, with moving
threads only between idle and working list we don't need the counters for
operation anyways. Maybe later when we find out that we need them we can
re-add them in a sane way
2010-01-20 01:03:41 +01:00
Christian Thaeter
12968bb784 thread kind and flag handling
* 256 states are enough for anyone (else fix the source)
 * add proper masking and handling of flags
2010-01-20 00:43:11 +01:00
Christian Thaeter
32217debe8 Fix threadloop
* joining must be done inside the loop, doh
 * a thread must release itself first in the loop, new threads
   have to go idle when created
2010-01-20 00:33:08 +01:00
Christian Thaeter
995d813709 add threadpool init/destroy to the global backend init/destroy 2010-01-19 18:46:02 +01:00
Christian Thaeter
66a0e6e0ca Experiment: remove custom states, syncs are 2-thread barriers 2010-01-18 19:58:31 +01:00
Christian Thaeter
e2c5aceec4 FIX: off by one error in time normalization
"The value of the nanoseconds field must be in the range 0 to 999999999."
2010-01-18 18:45:02 +01:00
Christian Thaeter
020908d623 Make threadpool_destroy wait until all threads are finished
adds a state to each threadpool which can be only offline or online.
One can not acquire new threads when the pool is offline.

no need for waits in the teststuite anymore.
2010-01-18 17:53:33 +01:00
Christian Thaeter
7371db8a2c thread deadlines, first implementation 2010-01-18 16:24:45 +01:00
Christian Thaeter
cc4dc25f4a while loop is little more solid than do..while 2010-01-18 16:23:28 +01:00
Christian Thaeter
e55e648f29 Thread syncronization and joining
add a custom defined range for states
provide functions for barrier like syncing between 2 threads
provide joinable threads and a thread_join() function
2010-01-18 00:34:53 +01:00
Christian Thaeter
72d9cbe91c Merge remote branch 'plouj/second-tp-attempt' into backend_devel
* plouj/second-tp-attempt: (68 commits)
  partially fix a pkg-config problem with scons on Fedora12
  fix comilation by using an existing TEST macro
  more formatting fixes to put spaces before function/macro call opening brackets
  add a stronger REQUIRE check
  ignore RESOURCE_ANNOUNCE in tests
  fix the code by re-merging some of cehteh's changes
  remove redundant info from TRACE
  match the filename in the header comment
  add a thread state check and remove an old comment
  python-2.6 fix: loading the icon_rener.py script (Ticket #222)
  Use a fully qualified name for PlacementMO in PlacementIndex
  fix compilation errors
  die regardless of what type of failure pthread_create() encounters
  mark thread as worker
  remote unnecessary calls to llist_unlink() insert is enough
  continuation of working_list introduction
  begin adding a second list to store working threads
  merge ECHO with TRACE
  don't expect any more output from the basic test
  fix compilation
  ...

Conflicts:
	src/tool/Makefile.am
	tests/Makefile.am
2010-01-17 17:32:43 +01:00
Christian Thaeter
b8336879f7 autoconf/automake cleanup
* refactor configure.ac to have distinct sections to configure each
   subsystem.
 * Dedicated LUMIERA_<subsys>_CFLAGS|_LIBS vars
 * Fix Makefile.am's to use them, remove unnecessary dependencies

Stray dependencies to be refacored:
 * tests/Makefile.am has dependencies on proc and backend
  - should be moved to tests/library/Makefile.am etc anyways
 * tests/lib/Makefile.am has dependency on GUI left


 * src/tool/Makefile.am links GUI stuff generally, thats ok

 * one threading test is broken, we don't care, merging new threadpool in
   next.
2010-01-17 15:48:30 +01:00
Michael Ploujnikov
c78571be55 more formatting fixes to put spaces before function/macro call opening brackets 2010-01-16 13:53:42 -05:00
Michael Ploujnikov
fa85a01818 add a stronger REQUIRE check 2010-01-16 13:13:02 -05:00
Michael Ploujnikov
02c9ee33c7 fix the code by re-merging some of cehteh's changes
test still fails
2010-01-16 11:48:48 -05:00
Michael Ploujnikov
e60c10a01d remove redundant info from TRACE
and add spaces for formatting
2010-01-16 10:39:45 -05:00
Michael Ploujnikov
e9ae8c8601 add a thread state check and remove an old comment 2010-01-15 07:35:28 -05:00
Michael Ploujnikov
9d4494aa90 Merge branch 'master' into second-tp-attempt 2010-01-14 19:32:07 -05:00
Michael Ploujnikov
151b0793ab Merge remote branch 'origin/master' 2010-01-14 19:31:42 -05:00
Michael Ploujnikov
f62513dea8 fix compilation errors 2010-01-14 16:46:27 -05:00
Christian Thaeter
aea546554b reworked sync.hpp using libraries locking functions 2010-01-14 21:15:13 +01:00
Michael Ploujnikov
09fd15d5f8 die regardless of what type of failure pthread_create() encounters 2010-01-12 08:01:54 -05:00
Michael Ploujnikov
b49a5abff2 mark thread as worker 2010-01-12 07:47:28 -05:00
Michael Ploujnikov
ecbcfdefd7 remote unnecessary calls to llist_unlink() insert is enough 2010-01-12 07:39:12 -05:00
Michael Ploujnikov
f890b35a03 continuation of working_list introduction 2010-01-11 15:04:52 -05:00
Michael Ploujnikov
925442b3d9 begin adding a second list to store working threads 2010-01-09 21:36:20 -05:00
Michael Ploujnikov
fd4504c9de merge ECHO with TRACE 2010-01-08 16:38:35 -05:00
Michael Ploujnikov
56cf53adb3 fix compilation 2010-01-07 18:36:51 -05:00
Michael Ploujnikov
4708326b77 Merge branch 'minor-fixes' into second-tp-attempt
Conflicts:
	src/backend/threadpool.c
	src/backend/threads.c
2010-01-07 18:27:09 -05:00
Michael Ploujnikov
30a46a6255 Merge remote branch 'public/minor-fixes' into minor-fixes
Conflicts:
	src/backend/threadpool.c
	src/backend/threadpool.h
	src/backend/threads.c
2010-01-07 18:24:25 -05:00
Michael Ploujnikov
d989babc8a Merge remote branch 'ct/for_plouj2' into second-tp-attempt
Conflicts:
	src/backend/thread-wrapper.hpp
	src/backend/threadpool.c
	src/backend/threadpool.h
	src/backend/threads.c
2010-01-07 07:18:23 -05:00
Michael Ploujnikov
c707f94929 update c++ wrapper to match the C API 2010-01-06 07:42:42 -05:00
Michael Ploujnikov
223e79cc4a replace mutex with condition variable in threadpool
use TRACE instead of ECHO
(based on cehteh's suggested code)
2010-01-04 17:03:47 -05:00
Michael Ploujnikov
7a507a0cee don't put threads in a detached state 2009-12-31 15:09:22 -05:00
Michael Ploujnikov
03fe6dd658 properly initialize and de-initialize the thread condition variable 2009-12-31 07:37:28 -05:00
Michael Ploujnikov
c4e1fdaf9a document lumiera_thread_destroy() and lumiera_thread_delete() 2009-12-31 07:32:55 -05:00
Michael Ploujnikov
ad404bd41a remove unused old code 2009-12-31 07:30:46 -05:00
Michael Ploujnikov
d63a6066a0 insert a space between the function name and the ( in each function call 2009-12-31 07:27:45 -05:00
Michael Ploujnikov
9c60d88c56 remove thread limiting logic from the threadpool 2009-12-31 07:24:07 -05:00
Michael Ploujnikov
69277b6770 remove unused function pool_thread_loop() 2009-12-31 07:18:29 -05:00
Christian Thaeter
88195087d6 recondition to condition,
remove the mutex from the pool
rename park to release :P
2009-12-24 01:54:49 +01:00
Christian Thaeter
6b4415d8fa nobugify
declare and init the nobug flags and use them for logging diagnostics
2009-12-24 01:50:59 +01:00
Christian Thaeter
026fab07dc cosmetics, deadcode removal 2009-12-24 01:46:43 +01:00
Christian Thaeter
bddb23d111 remove threadpool_unlink()
thread removes itself from the list, this is trival in place
2009-12-24 01:45:44 +01:00
Michael Ploujnikov
f2406c23a1 bork bork bork
by pulling this you agree to...
2009-12-23 13:10:31 -05:00
Michael Ploujnikov
24e87c815d remove old functions pthread_runner and lumiera_thread_run 2009-12-17 22:08:57 -05:00