comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: GNAT, portability between computers (win32)
Date: Thu, 11 Aug 2016 22:53:27 +0200
Date: 2016-08-11T22:53:27+02:00	[thread overview]
Message-ID: <noiokf$s5a$1@gioia.aioe.org> (raw)
In-Reply-To: 137435ce-6358-498a-ba83-a015a9a76b78@googlegroups.com

On 2016-08-11 20:12, Aurele wrote:
> Actually Dmitry, I'm using the auto init (true) feature and
> everything  works great with no external GNAT dependencies.

Yes, the problem is that if your DLL has library-level tasks or timed 
entry calls automatic initialization will deadlock. The offending call 
is Lock_RTS. If you look at the b__libraryname.adb file generated by 
gprbuild you will find there calls to the system procedures doing 
library initialization. If any of them calls Lock_RTS in its body, the 
DLL will freeze your program.

It hit me hard recently. Luckily I could go with manual initialization. 
It is quite frustrating that GNAT does not support DLLs with full Ada.

P.S. There is no need to lock RTS under Windows because threading is 
already locked when DLL is being loaded.

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

  reply	other threads:[~2016-08-11 20:53 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-10 14:17 GNAT, portability between computers (win32) George J
2016-08-10 14:23 ` George J
2016-08-10 14:43   ` Dmitry A. Kazakov
2016-08-10 14:52     ` George J
2016-08-10 16:07       ` Dmitry A. Kazakov
2016-08-10 15:30 ` Aurele
2016-08-10 18:29   ` gautier_niouzes
2016-08-10 20:44     ` Aurele
2016-08-11  5:08       ` gautier_niouzes
2016-08-11 14:47     ` George J
2016-08-11 14:50       ` George J
2016-08-11 16:03         ` Dmitry A. Kazakov
2016-08-10 16:55 ` George J
2016-08-10 17:16 ` George J
2016-08-11  9:53 ` Aurele
2016-08-11 10:11   ` Pascal Obry
2016-08-11 10:17     ` Aurele
2016-08-11 13:40       ` Pascal Obry
2016-08-11 14:53         ` Aurele
2016-08-11 16:11           ` Dmitry A. Kazakov
2016-08-11 16:41             ` Aurele
2016-08-11 17:23               ` Dmitry A. Kazakov
2016-08-11 18:12                 ` Aurele
2016-08-11 20:53                   ` Dmitry A. Kazakov [this message]
2016-08-11 19:42                 ` Aurele
replies disabled

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