"Ben Hutchings"
Why do you think you want suspend, resume and terminate? There are very few safe uses for these operations, and programs that use them tend to suffer from data corruption and/or deadlocks.
I am in the situation, that I have a lot of existing C++ Code, which work in this way. All kind of threads are running in an endless loop and will be controlled from outside over the resume and terminate interfaces. I have to deliver a class what satisfy the given interface, because I will have no chance to rewrite all the other code, which run very well on our given plattforms (SUN, HP, AIX, Linux, Windows). So my point is, I want use the portable boost code as a base and manage the non portable parts by myself and looking now for the best way to do it without manipulating the boost source code.
It would be fairly easy to add support for priority settings to Boost.Thread, but since priority values are only meaningful in the context of a scheduling policy and policies vary between operating systems it would be hard to provide a genuinely portable priority system.
Can you link to some examples? regards Arno
arno.schaefer@sqs.de wrote:
"Ben Hutchings"
schrieb im Newsbeitrag news:<416D5B83.4090404@businesswebsoftware.com>... Why do you think you want suspend, resume and terminate? There are very few safe uses for these operations, and programs that use them tend to suffer from data corruption and/or deadlocks.
I am in the situation, that I have a lot of existing C++ Code, which work in this way. All kind of threads are running in an endless loop and will be controlled from outside over the resume and terminate interfaces.
How do the threads communicate?
I have to deliver a class what satisfy the given interface, because I will have no chance to rewrite all the other code, which run very well on our given plattforms (SUN, HP, AIX, Linux, Windows). So my point is, I want use the portable boost code as a base and manage the non portable parts by myself and looking now for the best way to do it without manipulating the boost source code.
It's not clear to me whether you already have a working portable threading system. If you do, I don't understand why you need Boost.Thread. If you don't, and you think you can combine a bunch of single-threaded programs into one multithreaded program this way, I believe you're making a mistake.
It would be fairly easy to add support for priority settings to Boost.Thread, but since priority values are only meaningful in the context of a scheduling policy and policies vary between operating systems it would be hard to provide a genuinely portable priority system.
Can you link to some examples?
Examples of what?
participants (2)
-
arno.schaefer@sqs.de
-
Ben Hutchings