From 25f171dbda7491e62ea71be4f5125ccadcd14696 Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Mon, 16 Jul 2007 01:04:25 +0200 Subject: [PATCH] proposal about error handling and aborts --- wiki/support_library.html | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/wiki/support_library.html b/wiki/support_library.html index a8f456a93..a3a1f8441 100644 --- a/wiki/support_library.html +++ b/wiki/support_library.html @@ -767,6 +767,16 @@ Error: #f88
[[SupportLibrary]]
+
+
! Proposal:
+We need some centralized way to handle errors and doing hard aborts.
+
+I started using C-string addresses as errors for now, I think that convinient and unique until we find something better. (Actually this might be even kept in a library, alternatively maybe someone wants to investigate libcomerr)
+
+The next point is allocation failures, these are possible by C/C++ standard but don't actually happen anymore in linux (except in few rare cases). Instead gracefully handling this errors i'll add a {{{CINELERRA_DIE(message)}}} macro to this library later. This macro will just do (NoBug) logging and then doing a hard abort. Macro, because we want to preserve file/line location for logging.
+
+
+
/***
 |Name|FullScreenPlugin|
@@ -1150,11 +1160,12 @@ config.formatters.push( {
 } )
 //}}}
-
+
''[[Cinelerra3|index.html]]''
 SupportLibrary
 [[Threads and Locking]]
 [[Plugins]]
+[[ErrorHandling]]
 [[OS Services]]
 <<fullscreen>>
 
@@ -2464,11 +2475,12 @@ h1,h2,h3,h4,h5,h6 { /*}}}*/
-
+
The Support Library contains all tools we need at various places but by themself don't defines a subsystem on their own.
 
 These things are:
 * [[a Plugin loader|Plugins]]
+* [[ErrorHandling]]
 * a wraper for POSIX Threads
 ** Thread creation joining and canceling
 ** Locking primitives like Condition variables and Mutexes