[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[xml] Re: 'RE: [xml] Initialization"'
- From: Kasimier Buchcik <kbuchcik 4commerce de>
- To: Ohad Oded <Ohad Oded ealaddin com>, <xml gnome org>
- Subject: [xml] Re: 'RE: [xml] Initialization"'
- Date: Wed, 28 Apr 2004 16:14:39 +0200
Hi,
on 4/28/2004 2:59 PM Ohad Oded wrote:
> Hi,
> If intended to be called only once at finalization time of the library
> why isn't it called from DllMain when the reason is DLL_PROCESS_DETACH
> and xmlInitParser called when the reason is DLL_PROCESS_ATTACH?
You may want to read an existing mailing list tread on this subject for
additional information:
http://mail.gnome.org/archives/xml/2003-August/msg00161.html
Regards,
Kasimier
> -----Original Message-----
> From: Kasimier Buchcik [mailto:kbuchcik 4commerce de]
> Sent: Wednesday, April 28, 2004 3:36 PM
> To: Ohad Oded; xml gnome org
> Subject: Re: 'RE: [xml] Initialization"'
>
> Hi,
>
> on 4/28/2004 1:47 PM Ohad Oded wrote:
>
>
>>Hi,
>>Now I'm experiencing problem in the following sequence (I'm using
>>WIN32):
>>Thread A calls xmlInitParser().
>>.
>>.
>>.
>>Thread A calls xmlCleanupParser().
>>.
>>.
>>.
>>Thread B calls xmlInitParser()
>>
>>The code of xmlInitParser() from thread B crashes, I think it has to
>
> do
>
>>with the fact that it's not the same thread that initially called
>>xmlInitParser() (thread A). It crashes in __xmlGenericError within
>>IS_MAIN_THREAD and the problem is that run_once_init was not set back
>
> to
>
>>0 in xmlCleanupParser() (I'm not sure if intentionally or not).
>
>
> As said before: "xmlCleanupParser" is intended to be called only once at
>
> finalization time of the library, not in-between. Put your call of
> "xmlCleanupParser" outside your thread mechanism, i.e. into the main
> thread.
>
>
>>on 4/28/2004 9:44 AM Ohad Oded wrote:
>>
>>
>>
>>>Hi,
>>>
>>>
>>>
>>>I'm experiencing an access violation.
>>>
>>>When working with xmlParseFile() everything is ok.
>>>
>>>However when working with xmlReaderForMemory() I have an access
>>>violation because xmlInitParser() wasn't called.
>>>
>>>Is this intentional (meaning I have to call it myself)?
>>
>>
>>Yes, "xmlInitParser" needs to be called to initialize the library;
>
> this
>
>>function is reentrant, so don't care how often you call it. Some
>
> libxml2
>
>>functions call "xmlInitParser", so you were just lucky in the case of
>>"xmlParseFile". Note that it initializes the library only, it is not
>>designated to be called before parsing (its name is a bit misleading).
>
>
>>Additionally, "xmlCleanupParser" needs to be called to finalize the
>>library.
>>
>>
>>Regards,
>>
>>Kasimier
>
>
> Kasimier
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]