git.droids-corp.org
/
aversive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cd8a7eb
)
bad trajectory workaround
author
zer0
<zer0@carbon.local>
Sun, 9 May 2010 14:24:01 +0000
(16:24 +0200)
committer
zer0
<zer0@carbon.local>
Sun, 9 May 2010 14:24:01 +0000
(16:24 +0200)
modules/devices/robot/trajectory_manager/trajectory_manager_core.c
patch
|
blob
|
history
diff --git
a/modules/devices/robot/trajectory_manager/trajectory_manager_core.c
b/modules/devices/robot/trajectory_manager/trajectory_manager_core.c
index
e3311a9
..
6b3c172
100644
(file)
--- a/
modules/devices/robot/trajectory_manager/trajectory_manager_core.c
+++ b/
modules/devices/robot/trajectory_manager/trajectory_manager_core.c
@@
-319,11
+319,24
@@
uint8_t trajectory_distance_finished(struct trajectory *traj)
uint8_t trajectory_finished(struct trajectory *traj)
{
uint8_t flags, ret;
uint8_t trajectory_finished(struct trajectory *traj)
{
uint8_t flags, ret;
+ // uint8_t ret2;
+
IRQ_LOCK(flags);
IRQ_LOCK(flags);
- ret = trajectory_
angl
e_finished(traj) &&
- trajectory_
distanc
e_finished(traj);
+ ret = trajectory_
distanc
e_finished(traj) &&
+ trajectory_
angl
e_finished(traj);
IRQ_UNLOCK(flags);
IRQ_UNLOCK(flags);
+
+#if 0
+ /* XXX THIS IS A VERY BAD WORKAROUND (fix a race) */
+ IRQ_LOCK(flags);
+ ret2 = trajectory_distance_finished(traj) &&
+ trajectory_angle_finished(traj);
+ IRQ_UNLOCK(flags);
+
+ return ret && ret2;
+#else
return ret;
return ret;
+#endif
}
/** return true if traj is nearly finished */
}
/** return true if traj is nearly finished */