Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Indent the rest of the code (examples, buildtools, doc...) except for examples/SMPI...
[simgrid.git] / tools / tesh2 / src / units.c
index 1988eff..f18b6db 100644 (file)
 #include <units.h>\r
 #include <unit.h>\r
 #include <fstreams.h>\r
-\r
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);\r
-\r
-units_t\r
-units_new(runner_t runner, fstreams_t fstreams)\r
-{\r
-       fstream_t fstream;\r
-       unsigned int i;\r
-       unit_t unit;\r
-       \r
-       units_t units =  xbt_new0(s_units_t, 1);\r
-\r
-       units->items = xbt_dynar_new(sizeof(unit_t), (void_f_pvoid_t)unit_free);\r
-\r
-       xbt_dynar_foreach(fstreams->items, i, fstream)\r
-       {\r
-               unit = unit_new(runner, NULL, NULL, fstream);\r
-               xbt_dynar_push(units->items, &unit);\r
-       }\r
-       \r
-       return units;\r
-}\r
-\r
-\r
-int\r
-units_is_empty(units_t units)\r
-{\r
-       if(!units)\r
-       {\r
-               errno = EINVAL;\r
-               return 0;\r
-       }\r
-       \r
-       return (0 == xbt_dynar_length(units->items));\r
-}\r
-\r
-int\r
-units_get_size(units_t units)\r
-{\r
-       if(!units)\r
-       {\r
-               errno = EINVAL;\r
-               return -1;\r
-       }\r
-\r
-       return xbt_dynar_length(units->items);\r
-}\r
-\r
-\r
-int\r
-units_run_all(units_t units, xbt_os_mutex_t mutex)\r
-{\r
-       unit_t unit;\r
-       unsigned int i;\r
-       \r
-       if(!units)\r
-               return EINVAL;\r
-               \r
-       if(!xbt_dynar_length(units->items))\r
-               return EAGAIN;\r
-\r
-       xbt_dynar_foreach(units->items, i, unit)\r
-       {\r
-               unit_run(unit, mutex);\r
-       }\r
-\r
-       return 0;\r
-}\r
-\r
-int\r
-units_join_all(units_t units)\r
-{\r
-       unit_t unit;\r
-       unsigned int i;\r
-       \r
-       if(!units)\r
-               return EINVAL;\r
-               \r
-       if(!xbt_dynar_length(units->items))\r
-               return EAGAIN;\r
-\r
-       xbt_dynar_foreach(units->items, i, unit)\r
-       {\r
-               if(unit->thread)\r
-                       xbt_os_thread_join(unit->thread, NULL);\r
-       }\r
-\r
-       return 0;\r
-}\r
-\r
-int\r
-units_interrupt_all(units_t units)\r
-{\r
-       unit_t unit;\r
-       unsigned int i;\r
-       \r
-       if(!units)\r
-               return EINVAL;\r
-\r
-       if(!xbt_dynar_length(units->items))\r
-               return EAGAIN;\r
-\r
-       xbt_dynar_foreach(units->items, i, unit)\r
-       {\r
-               if(!(unit->successeded) && !(unit->interrupted))\r
-                       unit_interrupt(unit);\r
-       }\r
-       \r
-       return 0;\r
-}\r
-\r
-int\r
-units_summuarize(units_t units)\r
-{\r
-       unit_t unit;\r
-       unsigned int i;\r
-\r
-       if(!units)\r
-               return EINVAL;\r
-\r
-       if(!xbt_dynar_length(units->items))\r
-               return EAGAIN;\r
-\r
-       xbt_dynar_foreach(units->items, i, unit)\r
-       {\r
-               unit_summuarize(unit);\r
-       }\r
-       \r
-       return 0;\r
-       \r
-}\r
-\r
-int\r
-units_reset_all(units_t units)\r
-{\r
-       unit_t unit;\r
-       unsigned int i;\r
-       \r
-       if(!units)\r
-               return EINVAL;\r
-       \r
-       if(!xbt_dynar_length(units->items))\r
-               return EAGAIN;\r
-\r
-       xbt_dynar_foreach(units->items, i, unit)\r
-       {\r
-               unit_reset(unit);\r
-       }\r
-       return 0;\r
-}\r
-\r
-int\r
-units_free(void** unitsptr)\r
-{\r
-       if(!(*unitsptr))\r
-               return EINVAL;\r
-\r
-       xbt_dynar_free(&((*((units_t*)unitsptr))->items));\r
-               \r
-       free(*unitsptr);\r
-       *unitsptr = NULL;\r
-       \r
-       return 0;\r
-}\r
-\r
+\r XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);
+\r\runits_t \r units_new(runner_t runner, fstreams_t fstreams) \r
+{
+  \rfstream_t fstream;
+  \runsigned int i;
+  \runit_t unit;
+  \r\runits_t units = xbt_new0(s_units_t, 1);
+  \r\runits->items =
+      xbt_dynar_new(sizeof(unit_t), (void_f_pvoid_t) unit_free);
+  \r\rxbt_dynar_foreach(fstreams->items, i, fstream) \r {
+    \runit = unit_new(runner, NULL, NULL, fstream);
+    \rxbt_dynar_push(units->items, &unit);
+  \r}
+  \r\rreturn units;
+\r}
+
+\r\r\rint \r units_is_empty(units_t units) \r
+{
+  \rif (!units)
+    \r {
+    \rerrno = EINVAL;
+    \rreturn 0;
+    \r}
+  \r\rreturn (0 == xbt_dynar_length(units->items));
+\r}
+
+\r\rint \r units_get_size(units_t units) \r
+{
+  \rif (!units)
+    \r {
+    \rerrno = EINVAL;
+    \rreturn -1;
+    \r}
+  \r\rreturn xbt_dynar_length(units->items);
+\r}
+
+\r\r\rint \r units_run_all(units_t units, xbt_os_mutex_t mutex) \r
+{
+  \runit_t unit;
+  \runsigned int i;
+  \r\rif (!units)
+    \rreturn EINVAL;
+  \r\rif (!xbt_dynar_length(units->items))
+    \rreturn EAGAIN;
+  \r\rxbt_dynar_foreach(units->items, i, unit) \r {
+    \rxbt_os_sem_acquire(jobs_sem);
+    \runit_run(unit, mutex);
+  \r}
+  \r\rreturn 0;
+\r}
+
+\r\rint \r units_join_all(units_t units) \r
+{
+  \runit_t unit;
+  \runsigned int i;
+  \r\rif (!units)
+    \rreturn EINVAL;
+  \r\rif (!xbt_dynar_length(units->items))
+    \rreturn EAGAIN;
+  \r\rxbt_dynar_foreach(units->items, i, unit) \r {
+    \rif (unit->thread)
+      \rxbt_os_thread_join(unit->thread, NULL);
+  \r}
+  \r\rreturn 0;
+\r}
+
+\r\rint \r units_interrupt_all(units_t units) \r
+{
+  \runit_t unit;
+  \runsigned int i;
+  \r\rif (!units)
+    \rreturn EINVAL;
+  \r\rif (!xbt_dynar_length(units->items))
+    \rreturn EAGAIN;
+  \r\rxbt_dynar_foreach(units->items, i, unit) \r {
+    \rif (!(unit->successeded) && !(unit->interrupted))
+      \runit_interrupt(unit);
+    \r
+    else
+      \r {
+      \rif (!unit->released && unit->sem)
+        \r {
+        \runit->released = 1;
+        \rxbt_os_sem_release(unit->sem);
+        \r}
+      \r}
+  \r\r}
+  \r\rreturn 0;
+\r}
+
+\r\rint \r units_summuarize(units_t units) \r
+{
+  \runit_t unit;
+  \runsigned int i;
+  \r\rif (!units)
+    \rreturn EINVAL;
+  \r\rif (!xbt_dynar_length(units->items))
+    \rreturn EAGAIN;
+  \r\rxbt_dynar_foreach(units->items, i, unit) \r {
+    \runit_summuarize(unit);
+  \r}
+  \r\rreturn 0;
+\r\r}
+
+\r\rint \r units_reset_all(units_t units) \r
+{
+  \runit_t unit;
+  \runsigned int i;
+  \r\rif (!units)
+    \rreturn EINVAL;
+  \r\rif (!xbt_dynar_length(units->items))
+    \rreturn EAGAIN;
+  \r\rxbt_dynar_foreach(units->items, i, unit) \r {
+    \runit_reset(unit);
+  \r}
+  \rreturn 0;
+\r}
+
+\r\rint \r units_free(void **unitsptr) \r
+{
+  \rif (!(*unitsptr))
+    \rreturn EINVAL;
+  \r\rif ((*((units_t *) unitsptr))->items)
+    \rxbt_dynar_free(&((*((units_t *) unitsptr))->items));
+  \r\rfree(*unitsptr);
+  \r*unitsptr = NULL;
+  \r\rreturn 0;
+\r}
+
+\r\r