Commit graph

224 commits

Author SHA1 Message Date
Christian Thaeter
7ef1bab914 premature fix for the threadwrapper test
Added some more fuzz and sleeping to the test calculation to have a actual
chance to fail when something is not well locked.

Using a premature classlock, locking instances was insufficient.
2010-02-03 10:45:58 +01:00
Christian Thaeter
2b74d82f13 remove threadpool initialization, this is done elsewhere now
Subsystem runner/-test is still broken, sometimes segfaults
2010-01-30 07:37:32 +01:00
Christian Thaeter
e4e87e8cdd log error while setting it 2010-01-30 07:20:09 +01:00
Christian Thaeter
6659ab6ac1 Merge remote branch 'ichthyo/thread_integration' into backend_devel
* ichthyo/thread_integration:
  automatically start the threadpool on demand, similar to NoBug
  refactor the C++ thread-wrapper, remove JoinHandle
2010-01-24 16:24:38 +01:00
ede06e63d5 automatically start the threadpool on demand, similar to NoBug
but the difference is: threadpool comes up application init i.e. at the begin of main(),
while NoBug comes up in static init already.
2010-01-24 15:48:48 +01:00
93af4ed017 refactor the C++ thread-wrapper, remove JoinHandle 2010-01-24 14:05:32 +01:00
Christian Thaeter
f17249713c WIP: subsystem runner test, still broken
using new thread synchronization

Disabled further tests, making one after another working.

Some notes:
 * currently running this leads to different outcomes on differnt runs,
   there are some races/unsyncronized things left, to be investigated.
 * I suggest to make Subsystems joinable, this prolly needs some work in
   the error handling department (thread-wrapper.hpp too)
 * using nonrecursive/waitable lock, recursive locks are have some bad
   taste unless absolutely necessary
 * after all a timed lock with polling is not the right approach to check
   for subsystem shutdowns, I opted against thread cancelation because of
   its programming overhead and complexity. We may refine this and allow
   synchronous cancellation (with an approbiate thread flag) in some cases.
2010-01-23 06:57:15 +01:00
Christian Thaeter
8607a4006a update the thread-wrapper to use the new threading API
This removes the explicit Sync things from the thread wraper since
the functionality is almost exactly provided by the backend.

Thread encapsulates a lumiera thread handle now, but this is strictly
optional and might be dropped on the floor (using a temporary as thread).

Thread has a sync() function which allows user controlled syncronous
startup:

 Thread("foo", myoperation).sync();

will startup myoperation and only return from the ctor after myoperation
called a matching lumiera_thread_sync().

The related tests need to initialize/destroy the threadpool accordingly
2010-01-23 06:57:14 +01:00
Christian Thaeter
cd39533899 the thread-wrapper tests need to init/destroy the threadpool 2010-01-19 18:46:32 +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
Christian Thaeter
63346c7dff Fix remaining test, forgot to link tests in 2010-01-13 10:25:33 +01:00
5cc3af3009 document the changed/new behaviour by unit test 2010-01-07 04:40:10 +01:00
665bd19f8a use this to get the distinct keys of a multimap 2010-01-06 06:53:29 +01:00
ff2113e61f implement an duplicate-value filtering iterator 2010-01-06 06:19:30 +01:00
2ad85dbb07 bugfix and test coverage 2010-01-06 04:14:16 +01:00
030a7d3813 basic IterSource implementation passes unit test (#490) 2010-01-05 05:21:13 +01:00
16962ae714 IterSource implementation draft 2010-01-05 04:10:23 +01:00
ea5668c5e3 WIP define expected usage of IterSouce 2010-01-05 02:53:20 +01:00
330eb2c243 extended for-each looping helpers. Closes #479 2010-01-04 14:48:00 +01:00
bf48ebc272 add special for-each handling for Lumiera Forward Iterator 2010-01-04 14:23:15 +01:00
d2f24504bd verify/fix the test 2010-01-04 13:34:51 +01:00
cd3a77649e use the (new) iterable classification to mask for_each overloads 2010-01-04 11:19:01 +01:00
64cedb6345 implemented compile-time detection of STL or Lumiera iterator
closes #482
2010-01-03 05:43:33 +01:00
ce6767b71f Testcase to verify the iterable type detection 2010-01-03 00:02:53 +01:00
e27d03c501 simple duck detecor components pass unit test 2010-01-02 09:07:10 +01:00
8777aa585a duck detector (lib helpers): initial implementation draft 2010-01-02 08:09:40 +01:00
e94927d5a3 standard case (using STL container) solved, incl. binding arguments and member functions 2009-12-31 03:25:25 +01:00
484213e42d Implementation draft 2009-12-29 05:34:32 +01:00
2b46574da3 move the for_each helpers into a separate header
(because util.hpp is used pervasively, and I don't want
<tr1/functional> in such a widely used header...
2009-12-29 04:39:27 +01:00
0dca7cbb4d not-yet-implemented.... 2009-12-29 04:30:11 +01:00
c8c359d648 specify expected behaviour of the for_each helpers 2009-12-29 03:42:33 +01:00
0a085acf74 add coverage for the simple standard case
(function returing a value)
2009-12-25 05:24:49 +01:00
534ae16605 implemented this FunctionResult template, needed for Ticket #175 2009-12-23 04:46:09 +01:00
4cb32047ae WIP: define behaviour of a result remembering function... 2009-12-23 01:36:11 +01:00
97faf3dcb8 ItemWrapper unit test pass. Closes #476 2009-12-21 07:52:58 +01:00
e5ab9d73eb add specialisation to deal with wrapping a reference... 2009-12-21 06:19:56 +01:00
3db676fa32 base implementation fo the ItemWrapper 2009-12-21 05:44:29 +01:00
83eb6976cd draft an universal val/ref wrapper, needed by TransformIter.
Seemingly I've hit a nasty problem here, because PlacementIndex
should return an Placement&, but this is being fetched
after-the fact from within the iterator.
2009-12-20 04:33:24 +01:00
d0c905b5c9 add an transforming iterator to the itertools 2009-11-13 03:26:20 +01:00
043d4f42fa working example implementation of the access mechanism to session internal APIs 2009-11-09 02:08:37 +01:00
1c72cbb599 Iterator tools: (1) a filtering iterator 2009-11-02 06:06:43 +01:00
2620c38ed9 documentation, close some tickets... 2009-11-01 02:02:21 +01:00
f35b422316 SubID: add (preliminary) hash impl; unit test pass 2009-10-30 06:50:26 +01:00
df562a186f oops... fix a bug in Literal's hash function 2009-10-30 05:15:26 +01:00
006392f6ea yet another random test helper 2009-10-30 03:53:51 +01:00
ceb4d4b5ea reworked MultiFact passes unit test. Closes Ticket #376 2009-10-30 00:32:26 +01:00
1dccd37c70 re-order MultiFact implementation to get it to compile 2009-10-29 22:00:17 +01:00
3145064a21 change IterAdapter iteration control API to use free functions 2009-10-29 04:31:16 +01:00
0cef067c11 WIP adapt unit test and the argument-accepting MultiFact specialisation 2009-10-28 04:45:17 +01:00
2530e8c1a1 WIP try to create an extension point to MultiFact, allowing to accept argument(s)
sketch of an idea how to add an extension possibility
without messing up the basic MultiFact template
2009-10-27 05:13:38 +01:00