From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: Victor Porton Newsgroups: comp.lang.ada Subject: Protected hash map (efficient programming with a protected type) Date: Thu, 16 Nov 2017 22:42:38 +0200 Organization: Aioe.org NNTP Server Message-ID: NNTP-Posting-Host: edFHTOfx8phAphItWrZ8cQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: abuse@aioe.org User-Agent: KNode/4.14.10 X-Notice: Filtered by postfilter v. 0.8.2 Xref: feeder.eternal-september.org comp.lang.ada:48937 Date: 2017-11-16T22:42:38+02:00 List-Id: 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