diff --git a/src/lib/allocationcluster.cpp b/src/lib/allocationcluster.cpp index 1e210d80d..8dcd5da6e 100644 --- a/src/lib/allocationcluster.cpp +++ b/src/lib/allocationcluster.cpp @@ -189,11 +189,11 @@ namespace lib { } catch (lumiera::Error & ex) { - WARN (operate, "Exception while closing AllocationCluster: %s",ex.what()); + WARN (progress, "Exception while closing AllocationCluster: %s", ex.what()); } catch (...) { - ERROR (NOBUG_ON, "Unexpected fatal Exception while closing AllocationCluster."); + ALERT (progress, "Unexpected fatal Exception while closing AllocationCluster."); lumiera::error::lumiera_unexpectedException(); // terminate } } @@ -243,3 +243,11 @@ namespace lib { } // namespace lib + +/* +// Local Variables: +// mode: C +// c-file-style: "gnu" +// indent-tabs-mode: nil +// End: +*/ diff --git a/src/lib/cmdline.cpp b/src/lib/cmdline.cpp index e7474a021..aed6aae40 100644 --- a/src/lib/cmdline.cpp +++ b/src/lib/cmdline.cpp @@ -24,7 +24,7 @@ #include "lib/cmdline.hpp" #include "lib/util.hpp" -#include "include/nobugcfg.h" +#include "common/logging.h" #include #include diff --git a/src/lib/error.hpp b/src/lib/error.hpp index 50d43187d..d2e2537ef 100644 --- a/src/lib/error.hpp +++ b/src/lib/error.hpp @@ -25,7 +25,7 @@ #define LUMIERA_ERROR_HPP_ #include -#include "include/nobugcfg.h" +#include "common/logging.h" #include "include/lifecycle.h" #include "lib/error.h" @@ -165,6 +165,7 @@ namespace lumiera { * if NoBug is used, redefine some macros * to rather throw Lumiera Errors instead of aborting */ +#if 0 /*This will not work, nobug aborts are hard and may hold some locks, we discussed that before -- cehteh */ #ifdef NOBUG_ABORT #undef NOBUG_ABORT #define LUMIERA_NOBUG_LOCATION \ @@ -172,6 +173,6 @@ namespace lumiera { #define NOBUG_ABORT \ lumiera::error::assertion_terminate (LUMIERA_NOBUG_LOCATION); #endif - +#endif #endif // LUMIERA_ERROR_HPP_ diff --git a/src/lib/psplay.c b/src/lib/psplay.c index 2fc38e75c..dcb10a24f 100644 --- a/src/lib/psplay.c +++ b/src/lib/psplay.c @@ -21,6 +21,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "common/logging.h" #include "lib/psplay.h" #include @@ -28,7 +29,7 @@ #include #include -NOBUG_DEFINE_FLAG (psplay); +//NOBUG_DEFINE_FLAG (psplay); #ifndef PSPLAY_TRAIL_DEPTH #define PSPLAY_TRAIL_DEPTH 128 @@ -68,8 +69,8 @@ static inline uint32_t psplay_fast_prng () PSplay psplay_init (PSplay self, psplay_cmp_fn cmp, psplay_key_fn key, psplay_delete_fn del) { - NOBUG_INIT_FLAG (psplay); - TRACE (psplay); + //NOBUG_INIT_FLAG (psplay); + TRACE (psplay_dbg); REQUIRE (cmp); REQUIRE (key); @@ -103,7 +104,7 @@ psplay_new (psplay_cmp_fn cmp, psplay_key_fn key, psplay_delete_fn del) PSplay psplay_destroy (PSplay self) { - TRACE (psplay); + TRACE (psplay_dbg); if (self) while (self->tree) { PSplaynode n = psplay_remove (self, self->tree); @@ -159,7 +160,7 @@ trailidx (unsigned n) static inline void psplay_splay (PSplay self, struct psplaytrail* trail, unsigned splayfactor) { - TRACE (psplay, "%p %u", self, splayfactor); + TRACE (psplay_dbg, "%p %u", self, splayfactor); if (trail->dir < 0) trail->dir = - trail->dir; @@ -170,17 +171,17 @@ psplay_splay (PSplay self, struct psplaytrail* trail, unsigned splayfactor) PSplaynode grandparent = *trail->trail [trailidx (depth-2)]; unsigned r = PSPLAY_FORMULA; - TRACE (psplay, "r is %u", r); + TRACE (psplay_dbg, "r is %u", r); if (parent == grandparent->left) { - TRACE (psplay, "ZIG.."); + TRACE (psplay_dbg, "ZIG.."); if (node == parent->left) { - TRACE (psplay, "..ZIG"); + TRACE (psplay_dbg, "..ZIG"); if (r < PSPLAY_PROB_ZIGZIG) { - TRACE (psplay, "BREAK"); + TRACE (psplay_dbg, "BREAK"); return; } @@ -192,10 +193,10 @@ psplay_splay (PSplay self, struct psplaytrail* trail, unsigned splayfactor) } else { - TRACE (psplay, "..ZAG"); + TRACE (psplay_dbg, "..ZAG"); if (r < PSPLAY_PROB_ZIGZAG) { - TRACE (psplay, "BREAK"); + TRACE (psplay_dbg, "BREAK"); return; } @@ -208,13 +209,13 @@ psplay_splay (PSplay self, struct psplaytrail* trail, unsigned splayfactor) } else { - TRACE (psplay, "ZAG.."); + TRACE (psplay_dbg, "ZAG.."); if (node == parent->left) { - TRACE (psplay, "..ZIG"); + TRACE (psplay_dbg, "..ZIG"); if (r < PSPLAY_PROB_ZIGZAG) { - TRACE (psplay, "BREAK"); + TRACE (psplay_dbg, "BREAK"); return; } @@ -226,10 +227,10 @@ psplay_splay (PSplay self, struct psplaytrail* trail, unsigned splayfactor) } else { - TRACE (psplay, "..ZAG"); + TRACE (psplay_dbg, "..ZAG"); if (r < PSPLAY_PROB_ZIGZIG) { - TRACE (psplay, "BREAK"); + TRACE (psplay_dbg, "BREAK"); return; } @@ -248,7 +249,7 @@ psplay_splay (PSplay self, struct psplaytrail* trail, unsigned splayfactor) PSplaynode psplay_insert (PSplay self, PSplaynode node, int splayfactor) { - TRACE (psplay); + TRACE (psplay_dbg); PSplaynode n = self->tree; struct psplaytrail trail; @@ -301,7 +302,7 @@ psplay_insert (PSplay self, PSplaynode node, int splayfactor) PSplaynode psplay_find (PSplay self, const void* key, int splayfactor) { - TRACE (psplay); + TRACE (psplay_dbg); PSplaynode node = self->tree; struct psplaytrail trail; trail.dir = 0; @@ -341,7 +342,7 @@ psplay_find (PSplay self, const void* key, int splayfactor) PSplaynode psplay_remove (PSplay self, PSplaynode node) { - TRACE (psplay); + TRACE (psplay_dbg); if (!node) return NULL; PSplaynode* r = self->found_parent; @@ -350,7 +351,7 @@ psplay_remove (PSplay self, PSplaynode node) { if (!psplay_find (self, self->key (node), 0)) { - WARN (psplay, "node %p is not in splay tree %p", node, self); + WARN (psplay_dbg, "node %p is not in splay tree %p", node, self); return NULL; } r = self->found_parent; diff --git a/src/lib/query.cpp b/src/lib/query.cpp index 5dcc8e4ab..41df0fc53 100644 --- a/src/lib/query.cpp +++ b/src/lib/query.cpp @@ -23,7 +23,7 @@ #include "lib/query.hpp" #include "lib/util.hpp" -#include "include/nobugcfg.h" +#include "common/logging.h" #include #include diff --git a/src/lib/resourcecollector.c b/src/lib/resourcecollector.c index e8ba7cb6c..e1c21b83c 100644 --- a/src/lib/resourcecollector.c +++ b/src/lib/resourcecollector.c @@ -19,6 +19,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "common/logging.h" #include "lib/llist.h" #include "lib/mutex.h" #include "lib/safeclib.h" @@ -27,7 +28,7 @@ #include -NOBUG_DEFINE_FLAG (resourcecollector); /* TODO: make this a hierachy, derrive from PARENT (library) ? */ +//NOBUG_DEFINE_FLAG (resourcecollector); /* TODO: make this a hierachy, derrive from PARENT (library) ? */ llist lumiera_resourcecollector_registry[LUMIERA_RESOURCE_END]; lumiera_mutex lumiera_resourcecollector_lock; @@ -44,13 +45,13 @@ struct lumiera_resourcehandler_struct static void lumiera_resourcecollector_init_ (void) { - NOBUG_INIT_FLAG (resourcecollector); - TRACE (resourcecollector); + //NOBUG_INIT_FLAG (resourcecollector); + TRACE (resourcecollector_dbg); for (int i = 0; i < LUMIERA_RESOURCE_END; ++i) llist_init (&lumiera_resourcecollector_registry[i]); - lumiera_mutex_init (&lumiera_resourcecollector_lock, "resourcecollector", &NOBUG_FLAG(resourcecollector)); + lumiera_mutex_init (&lumiera_resourcecollector_lock, "resourcecollector", &NOBUG_FLAG(mutex_dbg)); } @@ -58,25 +59,25 @@ lumiera_resourcecollector_init_ (void) void lumiera_resourcecollector_destroy (void) { - TRACE (resourcecollector); + TRACE (resourcecollector_dbg); for (int i = 0; i < LUMIERA_RESOURCE_END; ++i) LLIST_WHILE_HEAD (&lumiera_resourcecollector_registry[i], head) lumiera_resourcehandler_unregister ((LumieraResourcehandler)head); - lumiera_mutex_destroy (&lumiera_resourcecollector_lock, &NOBUG_FLAG(resourcecollector)); + lumiera_mutex_destroy (&lumiera_resourcecollector_lock, &NOBUG_FLAG(mutex_dbg)); } int lumiera_resourcecollector_run (enum lumiera_resource which, enum lumiera_resource_try* iteration, void* context) { - TRACE (resourcecollector); + TRACE (resourcecollector_dbg); if (lumiera_resourcecollector_once == PTHREAD_ONCE_INIT) pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_); - LUMIERA_MUTEX_SECTION (resourcecollector, &lumiera_resourcecollector_lock) + LUMIERA_MUTEX_SECTION (mutex_sync, &lumiera_resourcecollector_lock) { for (enum lumiera_resource_try progress = LUMIERA_RESOURCE_NONE; progress < *iteration; ++*iteration) { @@ -99,7 +100,7 @@ lumiera_resourcecollector_run (enum lumiera_resource which, enum lumiera_resourc } else { - ERROR (resourcecollector, "PANIC, Not enough resources %d", which); + ALERT (resourcecollector, "PANIC, Not enough resources %d", which); for (int i = 0; i < LUMIERA_RESOURCE_END; ++i) LLIST_FOREACH (&lumiera_resourcecollector_registry[i], node) { @@ -122,7 +123,7 @@ lumiera_resourcecollector_register_handler (enum lumiera_resource resource, lumi if (lumiera_resourcecollector_once == PTHREAD_ONCE_INIT) pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_); - TRACE (resourcecollector); + TRACE (resourcecollector_dbg); LumieraResourcehandler self = lumiera_malloc (sizeof (*self)); @@ -130,7 +131,7 @@ lumiera_resourcecollector_register_handler (enum lumiera_resource resource, lumi self->handler = handler; self->data = data; - LUMIERA_MUTEX_SECTION (resourcecollector, &lumiera_resourcecollector_lock) + LUMIERA_MUTEX_SECTION (mutex_sync, &lumiera_resourcecollector_lock) { llist_insert_tail (&lumiera_resourcecollector_registry[resource], &self->node); } @@ -142,11 +143,11 @@ lumiera_resourcecollector_register_handler (enum lumiera_resource resource, lumi void lumiera_resourcehandler_unregister (LumieraResourcehandler self) { - TRACE (resourcecollector); + TRACE (resourcecollector_dbg); if (self) { - LUMIERA_MUTEX_SECTION (resourcecollector, &lumiera_resourcecollector_lock) + LUMIERA_MUTEX_SECTION (mutex_sync, &lumiera_resourcecollector_lock) { llist_unlink (&self->node); self->handler (LUMIERA_RESOURCE_UNREGISTER, self->data, NULL); @@ -160,10 +161,10 @@ lumiera_resourcehandler_unregister (LumieraResourcehandler self) LumieraResourcehandler lumiera_resourcecollector_handler_find (enum lumiera_resource resource, lumiera_resource_handler_fn handler, void* data) { - TRACE (resourcecollector); + TRACE (resourcecollector_dbg); LumieraResourcehandler self = NULL; - LUMIERA_MUTEX_SECTION (resourcecollector, &lumiera_resourcecollector_lock) + LUMIERA_MUTEX_SECTION (mutex_sync, &lumiera_resourcecollector_lock) { LLIST_FOREACH (&lumiera_resourcecollector_registry[resource], node) { diff --git a/src/lib/resourcecollector.h b/src/lib/resourcecollector.h index 863eec600..e7addae49 100644 --- a/src/lib/resourcecollector.h +++ b/src/lib/resourcecollector.h @@ -23,7 +23,7 @@ #include -NOBUG_DECLARE_FLAG (resourcecollector); +//NOBUG_DECLARE_FLAG (resourcecollector); /** * Resources known to the resource collector diff --git a/src/lib/singletonfactory.hpp b/src/lib/singletonfactory.hpp index 151af7855..31725dedf 100644 --- a/src/lib/singletonfactory.hpp +++ b/src/lib/singletonfactory.hpp @@ -37,12 +37,10 @@ This code is heavily inspired by #include "lib/singletonpolicies.hpp" // several Policies usable together with SingletonFactory -#include "include/nobugcfg.h" +#include "common/logging.h" #include "lib/util.hpp" #include "lib/sync-classlock.hpp" - - namespace lumiera { /** @@ -72,6 +70,7 @@ namespace lumiera { static PType pInstance_; static bool isDead_; + public: /** Interface to be used by SingletonFactory's clients. @@ -83,7 +82,12 @@ namespace lumiera { { if (!pInstance_) { + NOBUG_INIT; + FIXME ("NoBug wasnt even basically initialized here, the old ON_BASIC_INIT did not initialize it in proper order" + " so I explicitly init it here (calling init multiple times does not harm) --cehteh" + " nb maybe as exception we can use an explicit mutex here since pthread mutexes can be statically initialized"); ThreadLock guard SIDEEFFECT; + if (!pInstance_) { if (isDead_) @@ -144,3 +148,10 @@ namespace lumiera { } // namespace lumiera #endif +/* +// Local Variables: +// mode: C++ +// c-file-style: "gnu" +// indent-tabs-mode: nil +// End: +*/ diff --git a/src/lib/sync-classlock.hpp b/src/lib/sync-classlock.hpp index f4fe93dda..6a060eb1f 100644 --- a/src/lib/sync-classlock.hpp +++ b/src/lib/sync-classlock.hpp @@ -115,7 +115,7 @@ namespace lib { } public: - ClassLock() : Lock (getPerClassMonitor()) {} + ClassLock(...) : Lock (getPerClassMonitor()) {} uint use_count() { return nifty::Holder::accessed_; } }; diff --git a/src/lib/sync.hpp b/src/lib/sync.hpp index ef08e7f83..63212bfa5 100644 --- a/src/lib/sync.hpp +++ b/src/lib/sync.hpp @@ -67,7 +67,7 @@ #ifndef LIB_SYNC_H #define LIB_SYNC_H -#include "include/nobugcfg.h" +#include "common/logging.h" #include "lib/error.hpp" #include "lib/util.hpp" diff --git a/src/lib/test/run.hpp b/src/lib/test/run.hpp index c79753dad..9f6f2f415 100644 --- a/src/lib/test/run.hpp +++ b/src/lib/test/run.hpp @@ -28,7 +28,7 @@ #include "pre.hpp" -#include "include/nobugcfg.h" +#include "common/logging.h" #include "lib/test/suite.hpp" #include "lib/util.hpp" diff --git a/src/lib/test/suite.cpp b/src/lib/test/suite.cpp index 3c318cfc4..a4df524b6 100644 --- a/src/lib/test/suite.cpp +++ b/src/lib/test/suite.cpp @@ -30,7 +30,7 @@ #include #include -#include "include/nobugcfg.h" +#include "common/logging.h" #include "lib/cmdline.hpp" #include "lib/test/suite.hpp" #include "lib/test/run.hpp"