From: Victor Porton <porton@narod.ru>
Subject: Protected hash map (efficient programming with a protected type)
Date: Thu, 16 Nov 2017 22:42:38 +0200
Date: 2017-11-16T22:42:38+02:00 [thread overview]
Message-ID: <oukt7t$1ifn$1@gioia.aioe.org> (raw)
Process_Descriptor record consists of a process ID (an integer), two file
descriptors (for stdin and stdout). Process descriptors may also contain two
strings: program input string (formed before the program started) and
program output string (which is appended every time we get some output from
the program). It may contain more data.
Process descriptors are organized into a hash map from a Unix process ID
into a project descriptor.
Sometimes we receive Unix signal SIGCHLD what is configured to call a
protected procedure (of a protected object). This protected procedure should
remove the process descriptor from the map.
Now I don't understand how to organize access to the map.
First, copying process descriptors should be avoided because the stdout
string may be long and occupy a significant amount of memory. Thus I want to
use accesses to process descriptors rather than descriptor itself.
But in this case, an access value may become dangling if SIGCHILD handler
procedure is run in the middle and its use become erroneous.
What to do?
Note that my program is single-threaded.
I write some important open source programs for the benefit for the World.
Please help me.
--
Victor Porton - http://portonvictor.org
next reply other threads:[~2017-11-16 20:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-16 20:42 Victor Porton [this message]
2017-11-16 21:00 ` Protected hash map (efficient programming with a protected type) Victor Porton
2017-11-16 23:50 ` Randy Brukardt
2017-11-17 0:28 ` Victor Porton
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox