Eryk Sun <eryk...@gmail.com> added the comment:

> PS: I personally believe from my experience that shared memory 
> segments should outlive the process, unless specified otherwise. 
> Also, a argument persist=True, can be added which can ensure 
> that the shared_memory segment outlives the process, and can be 
> used by processes which are spawned later.

In terms of providing "consistent behavior across platforms that can be 
reasonably supported", the behavior suggested above could not reasonably be 
supported in Windows. 

The Section (shared memory) object itself is not a file. It gets created in the 
object namespace, either globally in "\BaseNamedObjects" or in an interactive 
session's "\Sessions\<session ID>\BaseNamedObjects". 

By default, kernel objects are temporary. Creating permanent named objects 
requires SeCreatePermanentPrivilege, which by default is only granted to SYSTEM 
(sort of like root in Unix). For an object to be accessible across sessions and 
outlive an interactive session, it needs to be global. Creating global Section 
objects requires SeCreateGlobalPrivilege, which by default is only granted to 
administrators and service accounts.

Also, the Windows API has no capability to create permanent objects, so this 
would require the NT API functions NtMakePermanentObject (undocumented, added 
in NT 5.1) and NtMakeTemporaryObject.

----------
nosy: +eryksun

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37754>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to