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
next prev parent 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