[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shared Memory und ein Leak



Hallo Thomas,


Am 02.04.21 um 10:21 schrieb Thomas Noll:
>> Welche Information habe ich übersehen? Was muss ich ausser shmdt() noch tun?
> 
> Ich vermute, mit shmctl  IPC_RMID das Segment zur Deletion markieren.
> 
> 
> man shmdt:
> ..
> shm_nattch is decremented by one.  If it becomes 0 and the  seg‐
>               ment is marked for deletion, the segment is deleted.
> ...
> 

Ich bräuchte kein Shared Memory, wenn ich ihn gleich wieder zerstöre.

Ein Thread startet und erzeugt den SHM, wenn er noch nicht da war. Die
nächsten Threads verwenden diesen dann.

Ich habe den Verdacht, dass der Thread nicht den SHM erzeugen darf (mit
shmget(key, roundedsize, 0666 |IPC_CREAT|IPC_EXCL );)
sondern nur verwenden, dass der Daemon-Prozess die Erzeugung machen
muss, bevor der Thread gestartet wird.

Wäre blöd, weil der daemon viele verschieden SHM-Bereiche anspricht...

Manfred


-- 
Manfred Rebentisch


Reply to: