From mboxrd@z Thu Jan 1 00:00:00 1970 Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: In memory Stream Date: Sat, 17 Feb 2024 15:48:05 +0100 Organization: A noiseless patient Spider Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sat, 17 Feb 2024 14:48:03 -0000 (UTC) Injection-Info: dont-email.me; posting-host="662d3d0c8c5c8e50d9cee14792db885b"; logging-data="491749"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+zeWsY23kkmI2yHj/JClKRbV/42eZmt8Q=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:SsV9sExfMe6wPOwkvH6tyVjC2AE= Content-Language: en-US In-Reply-To: Xref: news.eternal-september.org comp.lang.ada:66077 List-Id: On 2024-02-17 15:26, J-P. Rosen wrote: > On the memory side, we are > reading/writing bytes from memory, there is no notion of overflow. In the Simple Components there is a pipe stream. type Pipe_Stream ( Size : Stream_Element_Count ) is new Root_Stream_Type with private; When a task writes the stream full (Size elements), it gets blocked until another task reads something out. Another implementation type Storage_Stream ( Block_Size : Stream_Element_Count ) is new Root_Stream_Type with private; rather allocates a new block of memory. The allocated blocks get reused when their contents is read out. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de