New upstream version 1.11.11
Jochen Sprickerhof
6 years ago
0 | 0 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
1 | 1 |
Changelog for package actionlib
|
2 | 2 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
3 |
|
|
4 |
1.11.11 (2017-10-27)
|
|
5 |
--------------------
|
|
6 |
* fix typo in server_goal_handle_imp.h (`#89 <https://github.com/ros/actionlib/issues/89>`_)
|
|
7 |
* Use RAII to handle mutexes (`#87 <https://github.com/ros/actionlib/issues/87>`_)
|
|
8 |
* Contributors: Cong Liu, Esteve Fernandez, Mikael Arguedas
|
3 | 9 |
|
4 | 10 |
1.11.10 (2017-07-27)
|
5 | 11 |
--------------------
|
536 | 536 |
switch (cur_simple_state_.state_) {
|
537 | 537 |
case SimpleGoalState::PENDING:
|
538 | 538 |
case SimpleGoalState::ACTIVE:
|
539 | |
done_mutex_.lock();
|
540 | |
setSimpleState(SimpleGoalState::DONE);
|
541 | |
done_mutex_.unlock();
|
|
539 |
{
|
|
540 |
boost::mutex::scoped_lock lock(done_mutex_);
|
|
541 |
setSimpleState(SimpleGoalState::DONE);
|
|
542 |
}
|
542 | 543 |
|
543 | 544 |
if (done_cb_) {
|
544 | 545 |
done_cb_(getState(), gh.getResult());
|
38 | 38 |
|
39 | 39 |
#include <ros/ros.h>
|
40 | 40 |
#include <boost/thread.hpp>
|
|
41 |
#include <boost/thread/reverse_lock.hpp>
|
41 | 42 |
#include <boost/shared_ptr.hpp>
|
42 | 43 |
#include <actionlib_msgs/GoalID.h>
|
43 | 44 |
#include <actionlib_msgs/GoalStatusArray.h>
|
252 | 252 |
GoalHandle gh = GoalHandle(it, this, handle_tracker, guard_);
|
253 | 253 |
|
254 | 254 |
// make sure that we unlock before calling the users callback
|
255 | |
lock_.unlock();
|
|
255 |
boost::reverse_lock<boost::recursive_mutex::scoped_lock> unlocker(lock);
|
256 | 256 |
|
257 | 257 |
// now, we need to create a goal handle and call the user's callback
|
258 | 258 |
goal_callback_(gh);
|
259 | |
|
260 | |
lock_.lock();
|
261 | 259 |
}
|
262 | 260 |
}
|
263 | 261 |
|
|
309 | 307 |
GoalHandle gh(it, this, handle_tracker, guard_);
|
310 | 308 |
if (gh.setCancelRequested()) {
|
311 | 309 |
// make sure that we're unlocked before we call the users callback
|
312 | |
lock_.unlock();
|
|
310 |
boost::reverse_lock<boost::recursive_mutex::scoped_lock> unlocker(lock);
|
313 | 311 |
|
314 | 312 |
// call the user's cancel callback on the relevant goal
|
315 | 313 |
cancel_callback_(gh);
|
316 | |
|
317 | |
// lock for further modification of the status list
|
318 | |
lock_.lock();
|
319 | 314 |
}
|
320 | 315 |
}
|
321 | 316 |
}
|
54 | 54 |
DestructionGuard::ScopedProtector protector(*guard_);
|
55 | 55 |
if (protector.isProtected()) {
|
56 | 56 |
// make sure to lock while we erase status for this goal from the list
|
57 | |
as_->lock_.lock();
|
|
57 |
boost::recursive_mutex::scoped_lock lock(as_->lock_);
|
58 | 58 |
(*status_it_).handle_destruction_time_ = ros::Time::now();
|
59 | 59 |
// as_->status_list_.erase(status_it_);
|
60 | |
as_->lock_.unlock();
|
61 | 60 |
}
|
62 | 61 |
}
|
63 | 62 |
}
|
392 | 392 |
}
|
393 | 393 |
|
394 | 394 |
ROS_DEBUG_NAMED("actionlib",
|
395 | |
"Transisitoning to a cancel requested state on goal id: %s, stamp: %.2f",
|
|
395 |
"Transitioning to a cancel requested state on goal id: %s, stamp: %.2f",
|
396 | 396 |
getGoalID().id.c_str(), getGoalID().stamp.toSec());
|
397 | 397 |
if (goal_) {
|
398 | 398 |
boost::recursive_mutex::scoped_lock lock(as_->lock_);
|
384 | 384 |
ROS_FATAL_COND(!execute_callback_,
|
385 | 385 |
"execute_callback_ must exist. This is a bug in SimpleActionServer");
|
386 | 386 |
|
387 | |
// Make sure we're not locked when we call execute
|
388 | |
lock.unlock();
|
389 | |
execute_callback_(goal);
|
390 | |
lock.lock();
|
|
387 |
{
|
|
388 |
// Make sure we're not locked when we call execute
|
|
389 |
boost::reverse_lock<boost::recursive_mutex::scoped_lock> unlocker(lock);
|
|
390 |
execute_callback_(goal);
|
|
391 |
}
|
391 | 392 |
|
392 | 393 |
if (isActive()) {
|
393 | 394 |
ROS_WARN_NAMED("actionlib", "Your executeCallback did not set the goal to a terminal status.\n"
|
1 | 1 |
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
2 | 2 |
<package format="2">
|
3 | 3 |
<name>actionlib</name>
|
4 | |
<version>1.11.10</version>
|
|
4 |
<version>1.11.11</version>
|
5 | 5 |
<description>
|
6 | 6 |
The actionlib stack provides a standardized interface for
|
7 | 7 |
interfacing with preemptable tasks. Examples of this include moving
|