comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Library cleanup
Date: Tue, 20 May 2014 18:20:08 +0200
Date: 2014-05-20T18:20:08+02:00	[thread overview]
Message-ID: <1vqik1odcvjrw$.tsdp6cr7bp5y.dlg@40tude.net> (raw)
In-Reply-To: llfjea$ov5$1@speranza.aioe.org

On Tue, 20 May 2014 15:56:40 +0300, Victor Porton wrote:

> I am writing bindings for a C library which requires both initialization and 
> cleanup:
> 
> [[[
> raptor_init()
> raptor_finish()
> 
> Initialise and cleanup the library. These must be called before any raptor 
> class such as raptor_parser, raptor_uri is created or used. Note: as of 
> 1.4.19 these are wrappers around a static instance of the new raptor_world 
> class. In Raptor 2.0 this initialisation and cleanup method will be removed.
> ]]]
> 
> Initialization is clear: I just put it into the handled sequence of 
> statements of the package (should I also add Elaborate and/or Elaborate_Body 
> pragma?)
> 
> But how to do cleanup? That is, where to call raptor_finish()?
> 
> One way is to create a Limited_Controlled object in the package. Is there a 
> simpler way?

It is simple enough.

But much simpler is not to call raptor_finish() at all.

If the library is not OS-conformant, to clean up its internal persistent
state (does it have any?) upon unloading its instance, for example, when
the client application unexpectedly crashes, such a library must be removed
from the computer ASAP and never installed again.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2014-05-20 16:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-20 12:56 Library cleanup Victor Porton
2014-05-20 16:20 ` Dmitry A. Kazakov [this message]
2014-05-20 17:27   ` Victor Porton
2014-05-20 19:51     ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox