b15a1c2d3c
changed wording of the error message
2010-10-16 02:21:20 +02:00
73a1adcdf5
QueryFocus_test working now (still without diagnostic output)
2010-10-16 02:21:19 +02:00
a0234ecc38
get QueryFocus_test to compile with the (now existing) implementation
2010-10-16 02:21:19 +02:00
64f017da43
QueryFocusStack_test pass
2010-10-16 02:21:19 +02:00
46597009f9
get the basic ScopePath_test to pass
2010-10-16 02:21:19 +02:00
5c28b5d46e
re-read, verify and finish off the Scope, ScopeLocator and QueryFocus implementation
2010-10-16 02:21:19 +02:00
119f7be36c
define copy operations explicitly ( closes #662 )
...
ScopePath and Scope implementation should be roughly complete
2010-10-16 02:21:19 +02:00
bba9ce2570
code up the remaining Scope operations. Closes #430
2010-10-16 02:21:18 +02:00
6dd18f96c6
extend the session services API to support scope discovery
...
This allows the implementation of the Scope class to access
the current Session / PlacementIndex behind the scenes
2010-10-16 02:21:18 +02:00
99f29f9795
now able to build a IterSource based opaque const Scope iterator
...
for this to work, scope-path.hpp injects an explicit specialisation,
causing the RangeIter defined in ScopePath to yield const Scope
2010-10-16 02:21:18 +02:00
02d6d6a65c
extract iter::TypeBinding into separate header to allow explicit specialisation
2010-10-16 02:21:18 +02:00
fdfb946d63
preparation to allow explicit type bindings for iter-adapter
2010-10-16 02:21:18 +02:00
e5de12fc7a
(draft) maybe solved the problem defining a scope iterator
...
actually that would require to extract the IterTraits
from iter-adapter.hpp to allow for such dedicate specialisations
2010-10-16 02:21:18 +02:00
2c58e595c0
augment IterSource adapters by definition through classical iterator range
2010-10-16 02:21:18 +02:00
9593d388cc
back out that caching query, it's nonsense
...
defeating the whole purpose of that interface
2010-10-16 02:21:18 +02:00
001a45f64a
WIP implementation idea how to get both iterations unified
2010-10-16 02:21:18 +02:00
e14aba833e
remove the parent-iteration capability from Scope
...
its not needed yet, and would be surprisingly tricky
to implement, so lets get rid of it!
Use QueryFocus or ScopeLocator instead
2010-10-16 02:21:17 +02:00
d5cdd39f52
WIP trying to code up the public query function for scope paths
...
problem is how to get an iterator compatible with ScopeQuery...
2010-10-16 02:21:17 +02:00
088922a790
remove obsolete helper
...
seems to be a leftover, obsoleted by the simplifications done this june
in c80b1894e6 Ticket #641
2010-10-16 02:21:17 +02:00
58757281b0
rearrange the query functions to suit the changed ScopePath internals
2010-10-16 02:21:17 +02:00
1fe76e33a2
WIP: move the (planned) logic for virtual paths to ScopePath::navigate()
2010-10-16 02:21:17 +02:00
d1d7f3bc58
decided on an extension point to add virtual/effective paths
...
we need that later to get full meta-clip functionality
2010-10-16 02:21:17 +02:00
8078357e3c
revisiting the binding scope problem
2010-10-16 02:21:17 +02:00
a29591c299
SCons: several small improvements, e.g. valgrind-suppressionfile
2010-07-26 03:24:15 +02:00
Christian Thaeter
c66b71deb2
extend fileheader with some flags and endianess mark
2010-07-21 06:13:59 +02:00
Christian Thaeter
c908cf4807
Start of 'fileheader' implementation
...
Lumiera will create and use some files on its own (caches, indices). This
lies the foundation for identifying this files.
2010-07-21 06:13:59 +02:00
Christian Thaeter
51e5b8a90c
FIX: missing stdint.h include in tmpbuf.c for SIZE_MAX
2010-07-21 06:13:07 +02:00
Christian Thaeter
25c3b04ec8
FIX: tmpbuf.h include for tools
2010-07-21 05:05:33 +02:00
Christian Thaeter
c34e6d547e
FIX: tmpbuf.h for lib/time
2010-07-21 05:05:33 +02:00
Christian Thaeter
3c338d1b19
FIX: tmpbuf.h include for common/plugin
2010-07-21 05:05:33 +02:00
Christian Thaeter
2f92a958a8
FIX: tmpbuf.h includes in common/config
2010-07-21 05:05:33 +02:00
Christian Thaeter
f967f9427b
FIX: tmpbuf.h includes in backend
2010-07-21 05:05:32 +02:00
Christian Thaeter
0158c1b88d
WIP: factor tmpbuf out of safeclib
...
* tmpbuf got its own implementation files
* Some optimizations on the tmpbuf implementation, handling tiny,
small and huge allocations better.
* tiny allocation smaller than sizeof(void*) are not aligned
* Reduced the ring sizes to 16 (configureable in tmpbuf.h)
This is only the tmpbuf refactoring, fixes following on the next
commits.
2010-07-21 05:05:26 +02:00
Christian Thaeter
bc989dab7a
put 'VCALL' into its own lib header
...
There will be some use for it at other places too (config system)
2010-07-21 04:50:04 +02:00
Christian Thaeter
81da2ebc5d
Small fix in nobug assertions for mmap_address()
2010-07-21 04:50:04 +02:00
Christian Thaeter
677f8712ee
FIX: glitch in filehandle cache refcounters
2010-07-21 04:50:03 +02:00
Christian Thaeter
da23204bf3
Exclusive file locking
...
This adds global exclusive advisory file locks on a per-thread basis.
Only exclusive locking for a whole file is supported to setup headers etc.
Finer grained locking will be handled somewhere else.
2010-07-21 04:49:51 +02:00
Christian Thaeter
2dfef6cac4
add nobug flag to FILE_MMAP_SECTION() macro
2010-07-21 04:49:50 +02:00
Christian Thaeter
a8339fb5d0
add mmaping of exact blocks
...
namely file headers needs to be accessed unaligned and exactly as given,
this adds mmap functions to create mmap objects to do this.
2010-07-21 04:49:50 +02:00
Christian Thaeter
c4cbde9853
add a 'bias' to offset mmaped clusters
...
We will need cluster/page aligned access for certain files (indices),
this files will contain an initial header describing the contents. A bias
is used to step over this header and align the following data.
2010-07-21 04:49:40 +02:00
Christian Thaeter
84ec2b6a77
FIX: small refcounter glitch on mmap
...
freshly created mmaps have a refcounter set to 1 now, acquire a new
mmap only increments the refcounter when its checked out from cache.
2010-07-21 04:49:40 +02:00
Christian Thaeter
cd0cd341c0
Remove 'self' parameter from mmapcache calls, make it proper singleton
2010-07-21 04:49:40 +02:00
Christian Thaeter
3201ae5d8c
remove acquirer list for mmap regions in use, refcount is enough
2010-07-21 04:28:42 +02:00
Christian Thaeter
e0939e9469
improve the mmap handling
...
* add frontend interfaces to file to get a mmaping
* SECTION macro to encapsulate mmap access
* mmap_address() translating an actual offset to address
* add some tests
* some test cosmetics
2010-07-21 04:28:42 +02:00
Christian Thaeter
f887ee81ff
fix a small memory leak
...
forgot to delete the filedescriptorregistry tree, destroyed it only.
2010-07-21 04:28:42 +02:00
788e5646af
Testsuite: throw if Test-ID is unknown (Ticket #649 )
2010-07-17 01:07:23 +02:00
Christian Thaeter
99d5d3765f
FIX: Add remaining tests to the Makefiles, sort Makefiles
2010-07-16 21:44:44 +02:00
Christian Thaeter
d6a18ed9a7
post-merge autotools fixup
2010-07-16 05:39:01 +02:00
adba17472e
Merge recent small GUI fixes by S.Kangas
...
Merge commit 'skangas/minor-fixes'
2010-07-14 04:46:51 +02:00
e16ca49894
Merge in new (experimental) 'advice' concept
2010-07-14 04:33:42 +02:00
Stefan Kangas
a0804920bd
Fix several minor typos
2010-07-11 19:59:08 +02:00
Stefan Kangas
fe87453441
Add tooltips to timeline panel buttons
2010-07-07 04:07:39 +02:00
Stefan Kangas
204f3c7ee9
add http:// to website, making link in about window clickable
2010-07-05 05:01:06 +02:00
5c6a6c150f
clean up any remaining use of wstring
...
I consider wstring a deprecated technology
UTF-8 is all we need
2010-06-27 03:48:00 +02:00
562e571624
Purge Track-Asset from codebase (Ticket #581 )
...
From now on EntryID<mobject::session::Track> will play this role
2010-06-21 03:43:25 +02:00
b7353c6368
indentation
2010-06-20 05:23:08 +02:00
1089b339d0
code up querying for specific track, as used in the StructFactory
2010-06-20 05:19:47 +02:00
edbb2410a0
factor out a new session API sub-module for the global query functions
2010-06-20 04:30:42 +02:00
daba3f2a09
fix some namespace doxygen descriptions
2010-06-20 01:53:21 +02:00
5e104b633a
querying for specific objects (automatically pick target type)
2010-06-19 08:47:28 +02:00
c1cb5320e0
factor the specific query into separate header
2010-06-19 05:37:39 +02:00
c80b1894e6
Clean up design of ScopeQuery, throw out Iterator mixin ( closes #641 )
2010-06-19 05:20:34 +02:00
4f6fa69f2b
investigate the design problems (issuing scope exploartion queries)
2010-06-19 03:36:46 +02:00
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
f0aed2c2cc
fix dummy compilation/tests
2010-05-21 03:50:41 +02:00
86bc30a10a
Merge Ubuntu/Lucid adjustments. Drop pre 1.0 compatibility
2010-05-21 03:43:09 +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
Christian Thaeter
c15f2247d7
integrating nobug context passing
...
Somewhat more intrusive than the previous patch,
adds contexts everywhere except for sync.hpp where only default ctors
are used.
2010-01-23 01:40:27 +01:00
Christian Thaeter
8254b3fbda
updates for nobug 201001.2
...
dumping got a new api, surprisingly everything else works...
2010-01-22 23:21:48 +01:00
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
751a8b415c
few trace points
2010-01-20 01:04:35 +01: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
87918c657c
check wait condition before loop body
2010-01-18 14:23:23 +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
217d17107d
Use a fully qualified name for PlacementMO in PlacementIndex
...
This seems to satisfy g++ 4.4.2, which otherwise complains like this:
In file included from ../src/proc/mobject/session/session-impl.hpp:53,
from ../src/proc/mobject/session/sess-manager-impl.hpp:28,
from ../src/proc/mobject/session/sess-manager-impl.cpp:41:
../src/proc/mobject/session/placement-index.hpp:163: error:
declaration of ‘typedef class mobject::Placement<mobject::MObject,
mobject::MObject> mobject::session::PlacementIndex::PlacementMO’
../src/proc/mobject/placement.hpp:244: error: changes meaning of
‘PlacementMO’ from ‘typedef class mobject::Placement<mobject::MObject,
mobject::MObject> mobject::PlacementMO’
2010-01-16 17:04:13 +01: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
e0d6f1ce66
Merge branch 'master' into second-tp-attempt
...
Conflicts:
src/proc/mobject/session/placement-index.cpp
src/proc/mobject/session/placement-index.hpp
2010-01-14 21:06:14 -05:00
Michael Ploujnikov
2f27c7d71b
Use a fully qualified name for PlacementMO in PlacementIndex
...
This seems to satisfy g++ 4.4.2, which otherwise complains like this:
In file included from ../src/proc/mobject/session/session-impl.hpp:53,
from ../src/proc/mobject/session/sess-manager-impl.hpp:28,
from ../src/proc/mobject/session/sess-manager-impl.cpp:41:
../src/proc/mobject/session/placement-index.hpp:163: error:
declaration of ‘typedef class mobject::Placement<mobject::MObject,
mobject::MObject> mobject::session::PlacementIndex::PlacementMO’
../src/proc/mobject/placement.hpp:244: error: changes meaning of
‘PlacementMO’ from ‘typedef class mobject::Placement<mobject::MObject,
mobject::MObject> mobject::PlacementMO’
2010-01-14 20:57:45 -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
Christian Thaeter
dbb3b2e2e7
FIX: uhm .. forgotten to fix some stuff
2010-01-14 13:22:19 +01:00
Michael Ploujnikov
523e898fbe
Merge branch 'master' into second-tp-attempt
...
Conflicts:
src/lib/condition.h
src/lib/reccondition.h
2010-01-13 19:17:24 -05:00
Michael Ploujnikov
a045479c63
Merge branch 'master' of git://git.lumiera.org/LUMIERA
2010-01-13 19:12:15 -05:00
Christian Thaeter
3e8d8590e9
C lumiera_error to C++ exception bridge
...
* error::Runtime exception class which transports the C error code
* lumiera::throwOnError() which throws when there is a pending
lumiera error, otherwise it does nothing
2010-01-13 20:30:10 +01:00
Christian Thaeter
c29ea07138
lumiera_error_expect() lets one easily handle expected errors
...
This is a convenience function which clears the error state when some
expected error occurred and lets one branch on this.
2010-01-13 17:41:26 +01:00
Christian Thaeter
f0483b1d8b
FIX: few glitches using nobug flags
2010-01-13 14:22:08 +01:00
Christian Thaeter
a287b13481
remove the LUMIERA_RESTRICT macro
...
all functions using restrict are inline and can be properly optimized by
the compiler, no restrcit necessary
2010-01-13 13:00:13 +01:00
Christian Thaeter
63346c7dff
Fix remaining test, forgot to link tests in
2010-01-13 10:25:33 +01:00
Christian Thaeter
f78ec3b0ef
undo -Werror which slipped into the CXXFLAGS for the lib
2010-01-13 09:23:19 +01:00
Christian Thaeter
9c9161ef65
reccondition refactoring
2010-01-13 00:19:20 +01:00
Christian Thaeter
f1cf5aee60
condition var refactoring
2010-01-13 00:19:00 +01:00
Christian Thaeter
6816766182
rwlock refactoring
2010-01-13 00:18:48 +01:00
Christian Thaeter
059f086b4f
recmutex refactoring
2010-01-13 00:18:32 +01:00
Christian Thaeter
e7e9394f9b
refactor locking macros to functions, simpler macros
2010-01-13 00:16:43 +01:00
Christian Thaeter
b232a4f9f0
errors for locking
...
* add a 'unknown' error to the error system as fallback
* lockerror.c|h define all errors which can happen due locking
* lumiera_lockerror_set() translates posix errors to lumiera errors
* remove stale errors from sectionlock.h
2010-01-13 00:10:33 +01:00
Michael Ploujnikov
564e6c94a0
Merge remote branch 'origin/master'
...
Conflicts:
tests/test.sh
2010-01-12 08:05:12 -05: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
49da609e80
Merge branch 'master' of git://git.lumiera.org/LUMIERA into second-tp-attempt
...
Conflicts:
src/lib/condition.h
src/lib/mutex.h
src/lib/reccondition.h
src/lib/rwlock.h
tests/test.sh
2010-01-11 16:47:45 -05:00
Michael Ploujnikov
f890b35a03
continuation of working_list introduction
2010-01-11 15:04:52 -05:00
Christian Thaeter
7b014012e8
WIP: refactor locks once again, new nobug, little simpler
2010-01-10 10:36:24 +01:00
Christian Thaeter
7fea4f79be
Sectionlock needs a 'user' handle with new nobug
2010-01-10 10:36:24 +01:00
Christian Thaeter
799fe34980
Fix: race conditions with the nobug resource tracker
...
* requires new nobug version
* 40components.test "Type-based contexts" TypedCounter_test hangs
for unknown reason, temporary disabled
2010-01-10 10:36:24 +01:00
Michael Ploujnikov
925442b3d9
begin adding a second list to store working threads
2010-01-09 21:36:20 -05:00
81c920c0ed
Fix: static initialisation problem (due to placeholder code) #518
2010-01-10 00:04:58 +01:00
Christian Thaeter
4e7d656b71
WIP: autotools fixup for ichthyo
2010-01-09 22:17:34 +01:00
14c7f7fc62
PlacementIndex implemented, unit test pass
2010-01-09 05:10:32 +01:00
96f19c656d
add call for placement equivalence check
...
actual functionality to be added later
2010-01-09 04:46:17 +01:00
Michael Ploujnikov
fd4504c9de
merge ECHO with TRACE
2010-01-08 16:38:35 -05:00
36cd34e9b1
Placement: correct handling of ID generation on copy construction
2010-01-08 04:00:14 +01:00
92ad5d1994
change to lib::BoolCheckable for the self-valididty check
2010-01-08 03:59:30 +01:00
836f533a2f
add equality comparison and identity handling
2010-01-08 03:59:01 +01:00
8c7894943c
add equality comparison to the HashIndexed (mixin base)
2010-01-08 03:56:21 +01: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
d78a826d39
Merge branch 'minor-fixes' into second-tp-attempt
2010-01-07 07:18:59 -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
a56e107fe0
PlacementIndex self-verification implemented and passes compiler
2010-01-07 08:29:27 +01:00
2fd7a2f6f9
patch temporary re-entrance problems on session creation (maybe #495 )
2010-01-07 08:28:54 +01:00
5cc3af3009
document the changed/new behaviour by unit test
2010-01-07 04:40:10 +01:00
3525b77126
somewhat tricky modification of for-each, allowing inline calls
2010-01-07 03:10:02 +01:00
Michael Ploujnikov
0b961b9784
Merge remote branch 'ct/for_plouj' into second-tp-attempt
2010-01-06 17:30:16 -05:00
Michael Ploujnikov
d8234db7b3
Merge remote branch 'ct/for_plouj2' into second-tp-attempt
2010-01-06 07:48:36 -05:00
Michael Ploujnikov
c707f94929
update c++ wrapper to match the C API
2010-01-06 07:42:42 -05:00
226ed37e30
now able to compile PlacementIndex self-check code!
2010-01-06 07:49:25 +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
0081b36793
Itertools: add caching to FilterIter
...
filter predicate is now evaluated at most once
2010-01-06 06:16:30 +01:00
2ad85dbb07
bugfix and test coverage
2010-01-06 04:14:16 +01:00
2a5b080dd7
implement IterSource adapter for STL map and hashmap
2010-01-06 03:38:02 +01:00
030a7d3813
basic IterSource implementation passes unit test ( #490 )
2010-01-05 05:21:13 +01:00