comp.lang.ada
 help / color / mirror / Atom feed
From: "Dr. L.A. Timochouk" <L.A.Timochouk@ukc.ac.uk>
Subject: Tasking and Controlled types in GNAT
Date: Mon, 02 Jul 2001 13:16:30 +0100
Date: 2001-07-02T13:16:30+01:00	[thread overview]
Message-ID: <3B40661E.A6DE563B@ukc.ac.uk> (raw)

Hello,

I am using GNAT-3.13p with tasks as native threads on Linux, and
observed that there is a significant decrease of concurrency level if a
potentially blocking operation (in my
case Socket I/O) occurs inside the "Finalize" procedure for a Controlled
type. it looks
like "Finalize" is executed in a critical section with all other tasks
locked out by a global lock in the RTS. Is it true? If so, why is this
lock necessary? Where exactly in the compiler/RTS sources can it be
found? Maybe it can be deconfigured in some cases (e.g., in my case no
Controlled objects are shared between the tasks)?

Thank you very much in advance,

Dr. Leonid A. Timochouk

Computing Laboratory
University of Kent at Canterbury, England





                 reply	other threads:[~2001-07-02 12:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed
replies disabled

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