I ran into this error compiling an application with TBB 4.1.4 and Clang++ 3.3:
I am looking for a concurrent map with the ability to insert, erase, and traverse concurrently.
In the concurrent_unordered_map, the erase methods are prefixed with unsafe_ to indicate that they are not concurrency safe.
What exactly happens if I use the unsafe_erase concurrenly with iterator or insertion? How dangerous is that?
1. Can I use TBB in hard-real time applications ? (if the answer is no, please explain why ?)
2. Can I use TBB in soft-real time applications ? (if the answer is no, please explain why ?)
It is very importent to explain why or why not.
I am looking for a commercial product which has the functionality of TBB Flow graph but works on distributed system. I'd appricate any pointer. Avalanche from Indiana University is the closest one I can find on the Internet.
I have question regarding execution order of items in pipelines.
I have a pipeline with 3 stages s1, s2 and s3. Filter of these stages are set to 'serial_in_order'.
Im completely new to TBB, so please forgive my ignorance.
Is there any way to have concurrent_queue drop the oldest item in the queue (if its reached its max size) on a push instead off blocking, and in a different usage is there a method for the queue to just not add to the new item on a push if its reached its max size?
The idea is to have a producer consumer throttling method, my data is a stream and i can afford drops if the consumer can't keep up with the producer. Since the producer can produce at a variable rate (typically steady, but it can spike).
Trying to upgrade from TBB 4.1 Update 1 to Update 4, I ran into this error compiling for Linux with Clang:
.../tbb/concurrent_vector.h:667:38: error: conditional expression is ambiguous; 'size_type' (aka 'unsigned long') can be converted to 'atomic<size_type>' and vice versa
return iterator(*this, delta ? internal_grow_by( delta, sizeof(T), &initialize_array, NULL ) : my_early_size);
The download page is not currently working, with broken links to all of the downloads. For example, the Windows version links to the following file which doesn't exist:
Is anyone else having this issue, and if so can this be fixed?
I'm missing in the tbb::flow::priority_queue_node the ability to trim away to the end of the queue the messages of priorities below the threshold, else there could be a million of lower priority messages that would still be unneccessary processed one by one in the end. Besides, keeping the priority queue as compact as possible is probably better for memory and search effectiveness. So as soon a better idea of the thresold is known I'd like to be able to call into the priority queue to purge it. How could I accomplish it?
When a message is rejected by a following node (B), does the current task (A) wait or just dropes the message and quits? Can we control that? For example, let A be a multifunction_node (with T=3) and B -- a function_node (T=6), in a cycle:
-> multifunction_node -> function_node -