# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1211664049 -7200
# Node ID 2ccc1afc2c5235526c8b5adcb494f1f8e659cdaa
# Parent e561aa7675de318adf4cefc444d21c9297252201
Using \tparam commands + removing \author commands (ticket #29, #39)
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/bfs.h
a
|
b
|
|
37 | 37 | ///Default traits class of Bfs class. |
38 | 38 | |
39 | 39 | ///Default traits class of Bfs class. |
40 | | ///\param GR Digraph type. |
| 40 | ///\tparam GR Digraph type. |
41 | 41 | template<class GR> |
42 | 42 | struct BfsDefaultTraits |
43 | 43 | { |
… |
… |
|
115 | 115 | ///\ingroup search |
116 | 116 | ///This class provides an efficient implementation of the %BFS algorithm. |
117 | 117 | /// |
118 | | ///\param GR The digraph type the algorithm runs on. The default value is |
| 118 | ///\tparam GR The digraph type the algorithm runs on. The default value is |
119 | 119 | ///\ref ListDigraph. The value of GR is not used directly by Bfs, it |
120 | 120 | ///is only passed to \ref BfsDefaultTraits. |
121 | | ///\param TR Traits class to set various data types used by the algorithm. |
| 121 | ///\tparam TR Traits class to set various data types used by the algorithm. |
122 | 122 | ///The default traits class is |
123 | 123 | ///\ref BfsDefaultTraits "BfsDefaultTraits<GR>". |
124 | 124 | ///See \ref BfsDefaultTraits for the documentation of |
125 | 125 | ///a Bfs traits class. |
126 | | /// |
127 | | ///\author Alpar Juttner |
128 | 126 | |
129 | 127 | #ifdef DOXYGEN |
130 | 128 | template <typename GR, |
… |
… |
|
756 | 754 | ///Default traits class of Bfs function. |
757 | 755 | |
758 | 756 | ///Default traits class of Bfs function. |
759 | | ///\param GR Digraph type. |
| 757 | ///\tparam GR Digraph type. |
760 | 758 | template<class GR> |
761 | 759 | struct BfsWizardDefaultTraits |
762 | 760 | { |
… |
… |
|
1165 | 1163 | /// \brief Default traits class of BfsVisit class. |
1166 | 1164 | /// |
1167 | 1165 | /// Default traits class of BfsVisit class. |
1168 | | /// \param _Digraph Digraph type. |
| 1166 | /// \tparam _Digraph Digraph type. |
1169 | 1167 | template<class _Digraph> |
1170 | 1168 | struct BfsVisitDefaultTraits { |
1171 | 1169 | |
… |
… |
|
1201 | 1199 | /// class. It works with callback mechanism, the BfsVisit object calls |
1202 | 1200 | /// on every bfs event the \c Visitor class member functions. |
1203 | 1201 | /// |
1204 | | /// \param _Digraph The digraph type the algorithm runs on. The default value is |
| 1202 | /// \tparam _Digraph The digraph type the algorithm runs on. The default value is |
1205 | 1203 | /// \ref ListDigraph. The value of _Digraph is not used directly by Bfs, it |
1206 | 1204 | /// is only passed to \ref BfsDefaultTraits. |
1207 | | /// \param _Visitor The Visitor object for the algorithm. The |
| 1205 | /// \tparam _Visitor The Visitor object for the algorithm. The |
1208 | 1206 | /// \ref BfsVisitor "BfsVisitor<_Digraph>" is an empty Visitor which |
1209 | 1207 | /// does not observe the Bfs events. If you want to observe the bfs |
1210 | 1208 | /// events you should implement your own Visitor class. |
1211 | | /// \param _Traits Traits class to set various data types used by the |
| 1209 | /// \tparam _Traits Traits class to set various data types used by the |
1212 | 1210 | /// algorithm. The default traits class is |
1213 | 1211 | /// \ref BfsVisitDefaultTraits "BfsVisitDefaultTraits<_Digraph>". |
1214 | 1212 | /// See \ref BfsVisitDefaultTraits for the documentation of |
1215 | 1213 | /// a Bfs visit traits class. |
1216 | | /// |
1217 | | /// \author Jacint Szabo, Alpar Juttner and Balazs Dezso |
1218 | 1214 | #ifdef DOXYGEN |
1219 | 1215 | template <typename _Digraph, typename _Visitor, typename _Traits> |
1220 | 1216 | #else |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/bin_heap.h
a
|
b
|
|
39 | 39 | ///efficient. \c Compare specifies the ordering of the priorities. In a heap |
40 | 40 | ///one can change the priority of an item, add or erase an item, etc. |
41 | 41 | /// |
42 | | ///\param _Prio Type of the priority of the items. |
43 | | ///\param _ItemIntMap A read and writable Item int map, used internally |
| 42 | ///\tparam _Prio Type of the priority of the items. |
| 43 | ///\tparam _ItemIntMap A read and writable Item int map, used internally |
44 | 44 | ///to handle the cross references. |
45 | | ///\param _Compare A class for the ordering of the priorities. The |
| 45 | ///\tparam _Compare A class for the ordering of the priorities. The |
46 | 46 | ///default is \c std::less<_Prio>. |
47 | 47 | /// |
48 | 48 | ///\sa FibHeap |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/bits/alteration_notifier.h
a
|
b
|
|
94 | 94 | /// |
95 | 95 | /// \param _Container The container which is observed. |
96 | 96 | /// \param _Item The item type which is obserbved. |
97 | | /// |
98 | | /// \author Balazs Dezso |
99 | 97 | |
100 | 98 | template <typename _Container, typename _Item> |
101 | 99 | class AlterationNotifier { |
… |
… |
|
130 | 128 | /// The build() and clear() members are to notify the observer |
131 | 129 | /// about the container is built from an empty container or |
132 | 130 | /// is cleared to an empty container. |
133 | | /// |
134 | | /// \author Balazs Dezso |
135 | 131 | |
136 | 132 | class ObserverBase { |
137 | 133 | protected: |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/bits/bezier.h
a
|
b
|
|
24 | 24 | ///\brief Classes to compute with Bezier curves. |
25 | 25 | /// |
26 | 26 | ///Up to now this file is used internally by \ref graph_to_eps.h |
27 | | /// |
28 | | ///\author Alpar Juttner |
29 | 27 | |
30 | 28 | #include<lemon/dim2.h> |
31 | 29 | |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/bits/vector_map.h
a
|
b
|
|
44 | 44 | /// automatically updates the map when a key is added to or erased from |
45 | 45 | /// the map. This map type uses the std::vector to store the values. |
46 | 46 | /// |
47 | | /// \param Notifier The AlterationNotifier that will notify this map. |
48 | | /// \param Item The item type of the graph items. |
49 | | /// \param Value The value type of the map. |
50 | | /// |
51 | | /// \author Balazs Dezso |
| 47 | /// \tparam _Notifier The AlterationNotifier that will notify this map. |
| 48 | /// \tparam _Item The item type of the graph items. |
| 49 | /// \tparam _Value The value type of the map. |
| 50 | /// \todo Fix the doc: there is _Graph parameter instead of _Notifier. |
52 | 51 | template <typename _Graph, typename _Item, typename _Value> |
53 | 52 | class VectorMap |
54 | 53 | : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase { |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/color.h
a
|
b
|
|
27 | 27 | ///\ingroup misc |
28 | 28 | ///\file |
29 | 29 | ///\brief Tools to manage RGB colors. |
30 | | /// |
31 | | ///\author Alpar Juttner |
32 | 30 | |
33 | 31 | namespace lemon { |
34 | 32 | |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/concepts/path.h
a
|
b
|
|
40 | 40 | /// |
41 | 41 | /// A skeleton structure for representing directed paths in a |
42 | 42 | /// digraph. |
43 | | /// \param _Digraph The digraph type in which the path is. |
| 43 | /// \tparam _Digraph The digraph type in which the path is. |
44 | 44 | /// |
45 | 45 | /// In a sense, the path can be treated as a list of arcs. The |
46 | 46 | /// lemon path type stores just this list. As a consequence it |
… |
… |
|
205 | 205 | /// assigned to a real path and the dumpers can be implemented as |
206 | 206 | /// an adaptor class to the predecessor map. |
207 | 207 | |
208 | | /// \param _Digraph The digraph type in which the path is. |
| 208 | /// \tparam _Digraph The digraph type in which the path is. |
209 | 209 | /// |
210 | 210 | /// The paths can be constructed from any path type by a |
211 | 211 | /// template constructor or a template assignment operator. |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/dfs.h
a
|
b
|
|
38 | 38 | ///Default traits class of Dfs class. |
39 | 39 | |
40 | 40 | ///Default traits class of Dfs class. |
41 | | ///\param GR Digraph type. |
| 41 | ///\tparam GR Digraph type. |
42 | 42 | template<class GR> |
43 | 43 | struct DfsDefaultTraits |
44 | 44 | { |
… |
… |
|
117 | 117 | ///\ingroup search |
118 | 118 | ///This class provides an efficient implementation of the %DFS algorithm. |
119 | 119 | /// |
120 | | ///\param GR The digraph type the algorithm runs on. The default value is |
| 120 | ///\tparam GR The digraph type the algorithm runs on. The default value is |
121 | 121 | ///\ref ListDigraph. The value of GR is not used directly by Dfs, it |
122 | 122 | ///is only passed to \ref DfsDefaultTraits. |
123 | | ///\param TR Traits class to set various data types used by the algorithm. |
| 123 | ///\tparam TR Traits class to set various data types used by the algorithm. |
124 | 124 | ///The default traits class is |
125 | 125 | ///\ref DfsDefaultTraits "DfsDefaultTraits<GR>". |
126 | 126 | ///See \ref DfsDefaultTraits for the documentation of |
127 | 127 | ///a Dfs traits class. |
128 | | /// |
129 | | ///\author Jacint Szabo and Alpar Juttner |
130 | 128 | #ifdef DOXYGEN |
131 | 129 | template <typename GR, |
132 | 130 | typename TR> |
… |
… |
|
739 | 737 | ///Default traits class of Dfs function. |
740 | 738 | |
741 | 739 | ///Default traits class of Dfs function. |
742 | | ///\param GR Digraph type. |
| 740 | ///\tparam GR Digraph type. |
743 | 741 | template<class GR> |
744 | 742 | struct DfsWizardDefaultTraits |
745 | 743 | { |
… |
… |
|
1160 | 1158 | /// \brief Default traits class of DfsVisit class. |
1161 | 1159 | /// |
1162 | 1160 | /// Default traits class of DfsVisit class. |
1163 | | /// \param _Digraph Digraph type. |
| 1161 | /// \tparam _Digraph Digraph type. |
1164 | 1162 | template<class _Digraph> |
1165 | 1163 | struct DfsVisitDefaultTraits { |
1166 | 1164 | |
… |
… |
|
1195 | 1193 | /// class. It works with callback mechanism, the DfsVisit object calls |
1196 | 1194 | /// on every dfs event the \c Visitor class member functions. |
1197 | 1195 | /// |
1198 | | /// \param _Digraph The digraph type the algorithm runs on. The default value is |
| 1196 | /// \tparam _Digraph The digraph type the algorithm runs on. The default value is |
1199 | 1197 | /// \ref ListDigraph. The value of _Digraph is not used directly by Dfs, it |
1200 | 1198 | /// is only passed to \ref DfsDefaultTraits. |
1201 | | /// \param _Visitor The Visitor object for the algorithm. The |
| 1199 | /// \tparam _Visitor The Visitor object for the algorithm. The |
1202 | 1200 | /// \ref DfsVisitor "DfsVisitor<_Digraph>" is an empty Visitor which |
1203 | 1201 | /// does not observe the Dfs events. If you want to observe the dfs |
1204 | 1202 | /// events you should implement your own Visitor class. |
1205 | | /// \param _Traits Traits class to set various data types used by the |
| 1203 | /// \tparam _Traits Traits class to set various data types used by the |
1206 | 1204 | /// algorithm. The default traits class is |
1207 | 1205 | /// \ref DfsVisitDefaultTraits "DfsVisitDefaultTraits<_Digraph>". |
1208 | 1206 | /// See \ref DfsVisitDefaultTraits for the documentation of |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/dijkstra.h
a
|
b
|
|
77 | 77 | ///Default traits class of Dijkstra class. |
78 | 78 | |
79 | 79 | ///Default traits class of Dijkstra class. |
80 | | ///\param GR Digraph type. |
81 | | ///\param LM Type of length map. |
| 80 | ///\tparam GR Digraph type. |
| 81 | ///\tparam LM Type of length map. |
82 | 82 | template<class GR, class LM> |
83 | 83 | struct DijkstraDefaultTraits |
84 | 84 | { |
… |
… |
|
194 | 194 | /// |
195 | 195 | ///It is also possible to change the underlying priority heap. |
196 | 196 | /// |
197 | | ///\param GR The digraph type the algorithm runs on. The default value |
| 197 | ///\tparam GR The digraph type the algorithm runs on. The default value |
198 | 198 | ///is \ref ListDigraph. The value of GR is not used directly by |
199 | 199 | ///Dijkstra, it is only passed to \ref DijkstraDefaultTraits. |
200 | | ///\param LM This read-only ArcMap determines the lengths of the |
| 200 | ///\tparam LM This read-only ArcMap determines the lengths of the |
201 | 201 | ///arcs. It is read once for each arc, so the map may involve in |
202 | 202 | ///relatively time consuming process to compute the arc length if |
203 | 203 | ///it is necessary. The default map type is \ref |
204 | 204 | ///concepts::Digraph::ArcMap "Digraph::ArcMap<int>". The value |
205 | 205 | ///of LM is not used directly by Dijkstra, it is only passed to \ref |
206 | | ///DijkstraDefaultTraits. \param TR Traits class to set |
| 206 | ///DijkstraDefaultTraits. |
| 207 | ///\tparam TR Traits class to set |
207 | 208 | ///various data types used by the algorithm. The default traits |
208 | 209 | ///class is \ref DijkstraDefaultTraits |
209 | 210 | ///"DijkstraDefaultTraits<GR,LM>". See \ref |
210 | 211 | ///DijkstraDefaultTraits for the documentation of a Dijkstra traits |
211 | 212 | ///class. |
212 | | /// |
213 | | ///\author Jacint Szabo and Alpar Juttner |
214 | 213 | |
215 | 214 | #ifdef DOXYGEN |
216 | 215 | template <typename GR, typename LM, typename TR> |
… |
… |
|
875 | 874 | ///Default traits class of Dijkstra function. |
876 | 875 | |
877 | 876 | ///Default traits class of Dijkstra function. |
878 | | ///\param GR Digraph type. |
879 | | ///\param LM Type of length map. |
| 877 | ///\tparam GR Digraph type. |
| 878 | ///\tparam LM Type of length map. |
880 | 879 | template<class GR, class LM> |
881 | 880 | struct DijkstraWizardDefaultTraits |
882 | 881 | { |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/graph_to_eps.h
a
|
b
|
|
416 | 416 | ///Sets the map of the arc widths |
417 | 417 | |
418 | 418 | ///Sets the map of the arc widths |
419 | | ///\param x must be a arc map with \c double (or convertible) values. |
| 419 | ///\param x must be an arc map with \c double (or convertible) values. |
420 | 420 | template<class X> GraphToEps<ArcWidthsTraits<X> > arcWidths(const X &x) |
421 | 421 | { |
422 | 422 | dontPrint=true; |
… |
… |
|
464 | 464 | ///Sets the map of the arc colors |
465 | 465 | |
466 | 466 | ///Sets the map of the arc colors |
467 | | ///\param x must be a arc map with \ref Color values. |
| 467 | ///\param x must be an arc map with \ref Color values. |
468 | 468 | /// |
469 | 469 | ///\sa Palette |
470 | 470 | template<class X> GraphToEps<ArcColorsTraits<X> > |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/graph_utils.h
a
|
b
|
|
354 | 354 | ///\sa ArcLookUp |
355 | 355 | ///\sa AllArcLookUp |
356 | 356 | ///\sa DynArcLookUp |
357 | | /// |
358 | | /// \author Balazs Dezso |
359 | 357 | template <typename _Graph> |
360 | 358 | class ConArcIt : public _Graph::Arc { |
361 | 359 | public: |
… |
… |
|
478 | 476 | ///\endcode |
479 | 477 | /// |
480 | 478 | ///\sa findEdge() |
481 | | /// |
482 | | /// \author Balazs Dezso |
483 | 479 | template <typename _Graph> |
484 | 480 | class ConEdgeIt : public _Graph::Edge { |
485 | 481 | public: |
… |
… |
|
1242 | 1238 | /// The values of the map can be accessed |
1243 | 1239 | /// with stl compatible forward iterator. |
1244 | 1240 | /// |
1245 | | /// \param _Graph The graph type. |
1246 | | /// \param _Item The item type of the graph. |
1247 | | /// \param _Value The value type of the map. |
| 1241 | /// \tparam _Graph The graph type. |
| 1242 | /// \tparam _Item The item type of the graph. |
| 1243 | /// \tparam _Value The value type of the map. |
1248 | 1244 | /// |
1249 | 1245 | /// \see IterableValueMap |
1250 | 1246 | template <typename _Graph, typename _Item, typename _Value> |
… |
… |
|
1447 | 1443 | /// other node, i.e. this id is mutable). </ul> This map can be inverted |
1448 | 1444 | /// with its member class \c InverseMap, or with the \c operator() member. |
1449 | 1445 | /// |
1450 | | /// \param _Graph The graph class the \c DescriptorMap belongs to. |
1451 | | /// \param _Item The Item is the Key of the Map. It may be Node, Arc or |
| 1446 | /// \tparam _Graph The graph class the \c DescriptorMap belongs to. |
| 1447 | /// \tparam _Item The Item is the Key of the Map. It may be Node, Arc or |
1452 | 1448 | /// Edge. |
1453 | 1449 | template <typename _Graph, typename _Item> |
1454 | 1450 | class DescriptorMap : protected DefaultMap<_Graph, _Item, int> { |
… |
… |
|
1637 | 1633 | /// |
1638 | 1634 | /// The SourceMap gives back the source Node of the given arc. |
1639 | 1635 | /// \see TargetMap |
1640 | | /// \author Balazs Dezso |
1641 | 1636 | template <typename Digraph> |
1642 | 1637 | class SourceMap { |
1643 | 1638 | public: |
… |
… |
|
1677 | 1672 | /// |
1678 | 1673 | /// The TargetMap gives back the target Node of the given arc. |
1679 | 1674 | /// \see SourceMap |
1680 | | /// \author Balazs Dezso |
1681 | 1675 | template <typename Digraph> |
1682 | 1676 | class TargetMap { |
1683 | 1677 | public: |
… |
… |
|
1717 | 1711 | /// |
1718 | 1712 | /// Returns the "forward" directed arc view of an edge. |
1719 | 1713 | /// \see BackwardMap |
1720 | | /// \author Balazs Dezso |
1721 | 1714 | template <typename Graph> |
1722 | 1715 | class ForwardMap { |
1723 | 1716 | public: |
… |
… |
|
1757 | 1750 | /// |
1758 | 1751 | /// Returns the "backward" directed arc view of an edge. |
1759 | 1752 | /// \see ForwardMap |
1760 | | /// \author Balazs Dezso |
1761 | 1753 | template <typename Graph> |
1762 | 1754 | class BackwardMap { |
1763 | 1755 | public: |
… |
… |
|
2096 | 2088 | ///optimal time bound in a constant factor for any distribution of |
2097 | 2089 | ///queries. |
2098 | 2090 | /// |
2099 | | ///\param G The type of the underlying digraph. |
| 2091 | ///\tparam G The type of the underlying digraph. |
2100 | 2092 | /// |
2101 | 2093 | ///\sa ArcLookUp |
2102 | 2094 | ///\sa AllArcLookUp |
… |
… |
|
2537 | 2529 | ///whenever the digraph changes. This is a time consuming (superlinearly |
2538 | 2530 | ///proportional (<em>O(m</em>log<em>m)</em>) to the number of arcs). |
2539 | 2531 | /// |
2540 | | ///\param G The type of the underlying digraph. |
| 2532 | ///\tparam G The type of the underlying digraph. |
2541 | 2533 | /// |
2542 | 2534 | ///\sa DynArcLookUp |
2543 | 2535 | ///\sa AllArcLookUp |
… |
… |
|
2650 | 2642 | ///whenever the digraph changes. This is a time consuming (superlinearly |
2651 | 2643 | ///proportional (<em>O(m</em>log<em>m)</em>) to the number of arcs). |
2652 | 2644 | /// |
2653 | | ///\param G The type of the underlying digraph. |
| 2645 | ///\tparam G The type of the underlying digraph. |
2654 | 2646 | /// |
2655 | 2647 | ///\sa DynArcLookUp |
2656 | 2648 | ///\sa ArcLookUp |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/path.h
a
|
b
|
|
40 | 40 | /// \brief A structure for representing directed paths in a digraph. |
41 | 41 | /// |
42 | 42 | /// A structure for representing directed path in a digraph. |
43 | | /// \param Digraph The digraph type in which the path is. |
| 43 | /// \tparam _Digraph The digraph type in which the path is. |
44 | 44 | /// |
45 | 45 | /// In a sense, the path can be treated as a list of arcs. The |
46 | 46 | /// lemon path type stores just this list. As a consequence, it |
… |
… |
|
228 | 228 | /// \brief A structure for representing directed paths in a digraph. |
229 | 229 | /// |
230 | 230 | /// A structure for representing directed path in a digraph. |
231 | | /// \param Digraph The digraph type in which the path is. |
| 231 | /// \tparam _Digraph The digraph type in which the path is. |
232 | 232 | /// |
233 | 233 | /// In a sense, the path can be treated as a list of arcs. The |
234 | 234 | /// lemon path type stores just this list. As a consequence it |
… |
… |
|
392 | 392 | /// \brief A structure for representing directed paths in a digraph. |
393 | 393 | /// |
394 | 394 | /// A structure for representing directed path in a digraph. |
395 | | /// \param Digraph The digraph type in which the path is. |
| 395 | /// \tparam _Digraph The digraph type in which the path is. |
396 | 396 | /// |
397 | 397 | /// In a sense, the path can be treated as a list of arcs. The |
398 | 398 | /// lemon path type stores just this list. As a consequence it |
… |
… |
|
732 | 732 | /// \brief A structure for representing directed paths in a digraph. |
733 | 733 | /// |
734 | 734 | /// A structure for representing directed path in a digraph. |
735 | | /// \param Digraph The digraph type in which the path is. |
| 735 | /// \tparam _Digraph The digraph type in which the path is. |
736 | 736 | /// |
737 | 737 | /// In a sense, the path can be treated as a list of arcs. The |
738 | 738 | /// lemon path type stores just this list. As a consequence it |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/smart_graph.h
a
|
b
|
|
202 | 202 | ///concepts::ReferenceMap "reference map"s. |
203 | 203 | /// |
204 | 204 | ///\sa concepts::Digraph. |
205 | | /// |
206 | | ///\author Alpar Juttner |
207 | 205 | class SmartDigraph : public ExtendedSmartDigraphBase { |
208 | 206 | public: |
209 | 207 | |
diff -r e561aa7675de -r 2ccc1afc2c52 lemon/time_measure.h
a
|
b
|
|
56 | 56 | /// |
57 | 57 | /// In most cases, perhaps the \ref Timer or the \ref TimeReport |
58 | 58 | /// class is what you want to use instead. |
59 | | /// |
60 | | ///\author Alpar Juttner |
61 | 59 | |
62 | 60 | class TimeStamp |
63 | 61 | { |
… |
… |
|
296 | 294 | /// |
297 | 295 | ///\todo This shouldn't be Unix (Linux) specific. |
298 | 296 | ///\sa TimeReport |
299 | | /// |
300 | | ///\author Alpar Juttner |
301 | 297 | class Timer |
302 | 298 | { |
303 | 299 | int _running; //Timer is running iff _running>0; (_running>=0 always holds) |