[Bug 549] New: Call stop from your own thread

For more infomation about this bug, visit
Summary: Call stop from your own thread
Product: RTT
Version: 1.4.2
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Real-Time Toolkit (RTT)
AssignedTo: orocos-dev [..] ...
ReportedBy: leo [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

Now, you are not be able to call stop() from your own thread when using an
asyncronous task. The workaroung is using another thread (supervisor).

[Bug 549] Call stop from your own thread

For more infomation about this bug, visit

Peter Soetens
<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED

--- Comment #2 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-05-26 23:00:49 ---
Applied on trunk/rtt. Really minor fix, major improvement.

$ svn ci src/ tests/ -m"Fix bug #549: Call stop from your own thread. Patch
applied"
Sending src/ExecutionEngine.cpp
Sending src/os/SingleThread.cpp
Sending src/os/SingleThread.hpp
Sending tests/tasks_test.cpp
Transmitting file data ....
Committed revision 29325.

[Bug 549] Call stop from your own thread

For more infomation about this bug, visit

Peter Soetens
<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|orocos- |peter [dot] soetens [..] ...
|dev [..] ... |

--- Comment #1 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-05-26 22:49:20 ---
Created an attachment (id=306)
--> (https://www.fmtc.be/bugzilla/orocos/attachment.cgi?id=306)
Fixes this issue and adds a unit test

This was clearly a bug in the non-periodic/ SingleThread implementation. A
recursive mutex should have been used. I've also updated the ExecutionEngine to
behave correctly when a user does this. A unit test has verified this patch.