Commit graph

1982 commits

Author SHA1 Message Date
8f0dd93308 try to reorganise confusing API arrangement. leads to discovering Bug #641 2010-06-18 03:12:59 +02:00
fab1c699ea draft test to verify behaviour
but doesn't work; somehow the filterfunciton of the baseclass
gets installed
2010-06-16 06:45:38 +02:00
a8dcd9f494 idea how to implement searching for objects with specific properties 2010-06-16 05:56:44 +02:00
a1f3ad835b investigating the problem of finding an object with given conditions 2010-06-15 05:24:05 +02:00
c6c7214826 try to break the design deadlock with sequence / track creation 2010-06-14 02:08:45 +02:00
fc3e43bb19 re-reading my design and plannings from March, identiyfying next steps to take 2010-06-13 03:34:12 +02:00
e574fdf702 fix a regression regarding struct-asset naming scheme 2010-06-13 00:31:41 +02:00
68aefe5074 implement a simple singleton holder for NIL/default objects 2010-06-12 19:45:01 +02:00
2debae62e0 add locking to protect the advice index table mutations
clearly, this locking is quite global, and this couldb be
improved by using a more elaborate index structure
2010-06-12 19:32:25 +02:00
e020601ebd refactor AdviceSystem access 2010-06-12 19:06:56 +02:00
7b8f02ef20 change index/solution interface into protected
not to be used by client code, only by the index
2010-06-12 17:51:55 +02:00
a93d8a42e4 use killer-stash to resolve the AdviceSystem memory leak 2010-06-12 03:33:40 +02:00
cb838ba5b6 extend killer-stash to allow registration of custom deleter functions 2010-06-12 03:12:02 +02:00
59145e0f14 Refactor storing of advice to prepare for actually managing the storage 2010-06-11 04:12:11 +02:00
4fb884669b ooops... didn't invoke the dtor when releasing an Advice holer 2010-06-08 04:26:28 +02:00
eb19f59ba0 deleter memorising component passes unit test (#629) 2010-06-07 03:32:41 +02:00
9aca348870 code up implementation of this killer-stash 2010-06-07 02:14:10 +02:00
6b90767468 draft a component to manage deleter functions 2010-06-06 04:26:23 +02:00
dee4c33c55 change the index-interface from free to member functions
part of Ticket #628
2010-06-06 02:11:40 +02:00
2360f9b4c0 Advice colaboration: implemented and passes basic unit test 2010-06-05 05:09:42 +02:00
7d93dae8ea fix some simple problems (but doesn't pass tests yet)
looks like a logic error: new advice::Request got solution
2010-06-04 20:10:46 +02:00
203b955a33 add preliminary buffer memory management by heap allocation
TODO: use the lumiera pool allocator, prevent leak of any
advice data not explicitly retracted!
2010-06-04 19:33:42 +02:00
5a615ee4f8 consider advice::Index exception safety 2010-06-04 18:39:39 +02:00
7895ce5f49 solve the problem with re-binding and advice::Request 2010-06-04 17:25:33 +02:00
666d57f6ef code up the obvious part of the AdviceSystem implementation 2010-06-04 04:35:40 +02:00
d0e7f9b77d use the NullValue holder to solve the problem with default advice solutions
Implementation is simple, but the implications might be tricky
2010-06-03 04:40:38 +02:00
72c01e12c9 implement a simple singleton holder for NIL/default objects 2010-06-03 04:40:38 +02:00
91c2763fa4 WIP considering how to manage default / fallback advice 2010-06-03 04:40:38 +02:00
a9595d0a7f refactor link to the advice system into separate baseclass 2010-06-03 04:40:38 +02:00
74e12dd17a factor advice holding buffer into separate Class 2010-06-03 04:40:37 +02:00
d5ebe14d73 add (protected) calls to the AdviceSystem 2010-06-03 04:40:37 +02:00
69af735070 reconsider advice implementation. Investigate some tricky implementation decisions 2010-06-03 04:40:37 +02:00
7dcdff3287 advice-basics: stubbed and fixed to pass compiler 2010-06-03 04:40:37 +02:00
83b5c8c2c2 WIP code up external advice API 2010-06-03 04:40:37 +02:00
c9437b3bff binding index unit test pass 2010-06-03 04:40:37 +02:00
0c123e4af3 Bugfix 2010-06-03 04:40:36 +02:00
ca93b11010 provide self-verification. Advice index impl. now complete
but not yet tested...
2010-06-03 04:40:36 +02:00
d00d42b58c code up the core solution finding logic 2010-06-03 04:40:36 +02:00
e0cfa6798f implement the diagnostic operations 2010-06-03 04:40:36 +02:00
f1be9886fa fix problem with comparisions / containment check 2010-06-03 04:40:36 +02:00
d4433fb3f3 WIP code high-level index functionality 2010-06-03 04:40:36 +02:00
bf02d6d03f adapter interface for the test-entry 2010-06-03 04:40:36 +02:00
3c35e2a95f WIP code up index functionality... 2010-06-03 04:40:36 +02:00
530940254e stubbed advice binding index implementation 2010-06-03 04:40:36 +02:00
c8ac2b0447 planning the advice binding index implementation 2010-06-03 04:40:35 +02:00
5b48b9f864 fix a regression regarding struct-asset naming scheme 2010-06-03 04:40:35 +02:00
0514c24487 Advice binding pattern finished, passing unit test
now detecting a lot of syntax errors
2010-06-03 04:40:35 +02:00
1e28c7f1ab get the advice binding unit test to pass thus far 2010-06-03 04:40:35 +02:00
85f8035f92 Implement parsing of Advice binding pattern spec 2010-06-03 04:40:35 +02:00
f2269b7e78 Implement Advice binding pattern 2010-06-03 04:40:35 +02:00
f27024172f Implementation skeleton for advice binding match 2010-06-03 04:40:34 +02:00
e3c963378f outline some implementation details regarding the Bindings to match 2010-06-03 04:40:34 +02:00
3e2b78b670 fill in the basic definitions to make the draft test compile 2010-06-03 04:40:34 +02:00
abe8d876dd Start planning the Advice implementation: skeleton of unit tests 2010-06-03 04:40:34 +02:00
560612d467 check out how to use the GDB Python pretty-printers
Yes, it works with GDB 7.1 from Debian/Squeeze
2010-06-03 04:37:22 +02:00
b998935d6f fix linking problem with the asset::Struct naming scheme 2010-06-03 04:37:22 +02:00
1f988e17cd unfinished code commented out 2010-06-03 04:37:22 +02:00
0f6c2e84d2 test-driven brainstorming: TypedID usage 2010-06-03 04:37:22 +02:00
a78845507a cleanup 2010-06-03 04:37:20 +02:00
e61eb01942 experimental fix for #307 2010-06-03 04:37:20 +02:00
debba6f769 Fix PlacementIndex corruption while deleting recursively 2010-06-03 04:37:20 +02:00
82d8d26308 extend the map iterator adapter to work on STL ranges 2010-06-03 04:37:20 +02:00
939270063e helper: take snapshot of a given Lumiera or STL iterator 2010-06-03 04:37:20 +02:00
81f87ba852 similar low-level iterator adapter for multimap value groups 2010-06-03 04:37:20 +02:00
c5e4725dcb implement another wrapper to filter duplicates 2010-06-03 04:37:19 +02:00
a87889cbad implement convenience helper to pick key/value from a map iterator 2010-06-03 04:37:19 +02:00
73a2aea50c draft a low-level adapter to get all keys/vals of a stl::map
intention is just to use a thin wrapper, without
abstracting the implementation type (as IterSource does)
2010-06-03 04:37:19 +02:00
fc44e522e0 improve PlacementIndex self-verification 2010-06-03 04:37:19 +02:00
57a9b1a270 Iterator adapter to ennumerate all values to a multimap key (closes #492) 2010-06-03 04:37:19 +02:00
c9bf26d8c4 EntryID finished and passes unit test 2010-06-03 04:37:19 +02:00
c691213003 EntryID: fix symbol generation and improve ordering 2010-06-03 04:37:19 +02:00
b21db07aff implement generic object attach-to-model and purge 2010-06-03 04:37:18 +02:00
c43040985c more stubbing and compilation fixes 2010-06-03 04:37:18 +02:00
8a2515c0b0 stubbing and compilation fixes 2010-06-03 04:37:18 +02:00
474b1af82a add catch-all defaults for asset::struct naming 2010-06-03 04:37:18 +02:00
e4f015d622 WIP remaining parts of the EntryID implementation, untested 2010-06-03 04:37:18 +02:00
07146ad373 WIP parts of the EntryID implementation, refactor struct asset name generation 2010-06-03 04:37:18 +02:00
2131488afb test-driven brainstorming: simplified asset-like ID 2010-06-03 04:37:17 +02:00
39355713fd cleanup 2010-06-03 04:37:17 +02:00
1119b917a9 planning general refactoring to allow intended binding/sequence handling 2010-06-03 04:37:17 +02:00
4bf9a36f2e Start working on timeline-sequence binding. 2010-06-03 04:37:16 +02:00
c93dfc4f29 partially refactor into library 2010-06-03 04:37:16 +02:00
479bbbb6c7 clarify how deregistration works 2010-06-03 04:37:16 +02:00
dd3d22f950 implement registry for element-tracking. passes unit test 2010-06-03 04:37:16 +02:00
9ec865c3ab Stubbing and definitions to get element-tracking to compile 2010-06-03 04:37:16 +02:00
cdaff1566f Template instantiations for the new asset types Timeline and Sequence 2010-06-03 04:37:15 +02:00
55df5205a4 draft a mixin for adding element-tracking functionality 2010-06-03 04:37:15 +02:00
bdb21c4aa8 draft required functionality for the element-tracker 2010-06-03 04:37:15 +02:00
c7a9b04fba refactor SessionImpl to support nested interface modules on the API 2010-06-03 04:37:15 +02:00
fa0482fab4 WIP add sub-interfaces to the session API 2010-06-03 04:37:15 +02:00
bfc18dfb94 consider using RefArray for the Session API 2010-06-03 04:37:14 +02:00
ea538d962f test-driven brainstorming: adding and removing session parts 2010-06-03 04:37:14 +02:00
baff536731 placement and pointee equivalence tests 2010-06-03 04:37:14 +02:00
11c5d55b73 draft: run self-check on MObject creation 2010-06-03 04:37:14 +02:00
8f34129f60 planning: structural assets and the track-ID 2010-06-03 04:37:14 +02:00
8eb0a16134 cast the new spec regarding timeline/session into unit test code 2010-06-03 04:37:14 +02:00
4594ddde3a WIP: test driven brainstorming regarding sequence/timeline handling 2010-06-03 04:37:13 +02:00
c2cbe4c9e8 change Timeline and Sequence to be structural assets 2010-06-03 04:37:13 +02:00
092ea07b76 kill "the EDL" 2010-06-03 04:37:12 +02:00
Odin Hørthe Omdal
792a595041 Fix for old GAVL versions (missing uint64_t) 2010-05-15 02:20:07 +02:00
Christian Thaeter
9d99300841 FIX: #619, New Nobug required! version 201005.1
add the 'extra' argument to mpool dumps.
Solves Linking problems on some distros.
2010-05-12 00:46:39 +02:00
5b9aa5deb2 landing the new threadpool implementation 2010-02-15 00:48:52 +01:00
1c63a02e23 augment and round up the C++ thread wrapper 2010-02-14 23:39:15 +01:00
90d311dc1d Error integration: error::Flag as subclass of State. Wrapped throw 2010-02-13 20:56:41 +01:00
acd0671390 clarify some comments regarding GUI start 2010-02-13 17:41:16 +01:00
dc991ca563 valgrind suppression: add some more cases to be filtered 2010-02-13 06:00:38 +01:00
b41bd20de4 push accessing the DiagnosticContext down one layer
accessing the DiagnosticContext now inline when
providing the paramters for calling the C-functions.
No change in functionality, but saves us a lot of
syntactic noise.
2010-02-13 05:33:08 +01:00
3466793976 repackage as a more general facility (DiagnosticContext)
implementation unaltered (just managing the NoBug handle)
2010-02-13 04:54:59 +01:00
4dfd7266b9 draft solution to factor out management of the resource handle
based on the idea of a diagnostic context stack
2010-02-13 04:03:27 +01:00
763f86fe0e back out changes I do not want in lib/sync.hpp
especially, I do not want to pass a resource handle
through all locking function APIs; the memory
management of the resource tracker should better
be kept separate and not mixed with the monitor.

Also, I am rather reluctand regarding any extended
functionality for the monitor, like timed locks
or trylocks or read/write monitors. I think, the
monitor pattern is only beneficial when it is kept
fairly simple, advanced thread programming should
be pushed out into lib functions in the backend.
2010-02-12 05:22:17 +01:00
52a7d6993d SCons: remove GThreads from linking (except for the GUI) 2010-02-11 03:19:42 +01:00
dfd70c6069 replace GThreads by the Lumiera thread wrapper 2010-02-11 03:06:42 +01:00
Christian Thaeter
80e2db4800 hook the resourcecollector into safeclib on backend startup 2010-02-08 17:47:26 +01:00
Christian Thaeter
d103346482 hook mpool into the resourcecollector and using safeclib allocations 2010-02-08 14:28:54 +01:00
Christian Thaeter
9feb01e4fe add hooks for malloc/free to mpool, add (no-op) purge function
We will need this to hook the resourcecollector in
2010-02-07 20:53:51 +01:00
Christian Thaeter
b60d8aa907 FIX: error.c memory leak when destroying threads
the error context is dynamically allocated and must be freed, forgotten
this as errors originated from static strings initially.
2010-02-07 20:25:09 +01:00
Christian Thaeter
33a0591689 Make resourcecollector initialization explicit
instead automatic initialization, the resourcecollector is pulled up as
backend service.
2010-02-05 09:20:52 +01:00
Christian Thaeter
d350a250fa Move the resourcecollector to the backend, closes #521 2010-02-05 08:58:19 +01:00
Christian Thaeter
d45b2eef91 factor the filedescriptorregistry out, closes #395
also introduces a new mutex for lookup/creating files to prevent races
2010-02-04 22:52:21 +01:00
Christian Thaeter
40d1bb50bb fix double-free bug in mmap.c 2010-02-04 21:56:49 +01:00
Christian Thaeter
97d5b1c727 remove the 'once' hack from mmap_init() 2010-02-04 20:43:27 +01:00
Christian Thaeter
c1c97228a5 Set error condition when chunksize for a non mmaped file is queried 2010-02-04 20:41:49 +01:00
Christian Thaeter
4821e7eb3f add file_delete_unlink() which removes a file from disk when closed
For temporary file, only removes the name under which it was opened
2010-02-04 20:40:54 +01:00
Christian Thaeter
31a2f454d8 remove lumiera_fhcache as parameter, closes #396 2010-02-04 10:21:20 +01:00
Christian Thaeter
711af29605 Merge remote branch 'plouj/second-tp-attempt' into backend_devel
* plouj/second-tp-attempt:
  added two sync tests
  show the state name string
  it is more proper to use cond_sync flags for *CONDITION_SECTIONs
  add a threads/threadpool NOBUG flag hierarchy
  replace an old test with a compile-only one which spawns way too many threads
  increase the delay in threads to 10ms
  wrap prime test in usleep() to make the thread likely to be re-scheduled
2010-02-03 10:51:03 +01:00
Christian Thaeter
01839d4e48 update for nobug-201002.1 2010-02-03 10:38:12 +01:00
Michael Ploujnikov
6d053d3f84 show the state name string 2010-02-01 16:51:27 -05:00
Michael Ploujnikov
8588fa2b9c it is more proper to use cond_sync flags for *CONDITION_SECTIONs 2010-02-01 07:25:49 -05:00
Michael Ploujnikov
b799321dff add a threads/threadpool NOBUG flag hierarchy
and remove redundant/errorneous flag initializations as a result
also use the test flag from logging.h
2010-02-01 07:25:06 -05:00
Christian Thaeter
014c83ff5a PTHREAD_ONCE_INIT can be a macro, fast init trick doesn't work then 2010-01-30 08:40:38 +01:00
Christian Thaeter
32d9a9f9ad FIX: thread-wrapper proxy the catched error up to the joiner 2010-01-30 07:20:09 +01:00
Christian Thaeter
87465ff69b little test-helper cosmetics 2010-01-30 07:20:09 +01:00
Christian Thaeter
dc5ae73626 Log the error passing when joining threads 2010-01-30 07:20:09 +01:00
Christian Thaeter
812f7112af FIX: small race in acquire_thread, catching threads out of the void 2010-01-30 02:56:50 +01:00
Christian Thaeter
f57d637b59 Merge commit 'dc87e78590ea86615d3ebe90d23af4548445b941' into backend_devel
* commit 'dc87e78590ea86615d3ebe90d23af4548445b941':
  add a two-thread acquire test
  show the state of the thread in question
  minor fixes: remove an old comment and change another
  fix the prime test algorithm
  use unsigned long for even more digits!
2010-01-30 00:48:04 +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
82967191b3 PlacementIndexQueryResolver passes unit test 2010-01-23 15:50:46 +01:00
a9a6bb3951 better store the scope-ID within a query 2010-01-23 15:50:46 +01:00
018801895b Add some test-dummy MObjects *temporarily* to core tree (Ticket #532) 2010-01-23 15:50:46 +01:00
f6cf3195cf * MObjectRef_test pass *
This is the integration of some months of work
2010-01-23 15:50:46 +01:00
0f9fc7e3dd PlacementRef works! that's a milestone. Closes #78 2010-01-23 15:50:46 +01:00
9a6f9b2ba5 PlacementIndex: possibly retaining type information on insert 2010-01-23 15:50:46 +01:00
26972376de MobjectRef_test passes compiler as a whole 2010-01-23 15:50:45 +01:00
71428ccf6f activating an MObject ref implemented, passes compiler 2010-01-23 15:50:45 +01:00
e9d641babd nail down all the MObjectRef equality comparison cases 2010-01-23 15:50:45 +01:00
e04672936a getting MObjectRef_test partially through the compiler 2010-01-23 15:50:45 +01:00
b32a48f410 Finish definition/documentation of PlacementRef and PlacementIndex 2010-01-23 15:50:45 +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
9fc68c9d32 Merge remote branch 'public/nobug201001.2' into backend_devel
* public/nobug201001.2:
  integrating nobug context passing
  updates for nobug 201001.2

Conflicts:
	configure.ac
	src/lib/condition.h
	src/lib/reccondition.h
	tests/backend/test-threads.c
2010-01-23 06:56:39 +01:00