classification
Title: Reimplement subset of multiprocessing.sharedctypes using memoryview
Type: enhancement Stage: patch review
Components: Versions: Python 3.5
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: davin, neologix, pitrou, sbt
Priority: normal Keywords: patch

Created on 2012-05-29 14:59 by sbt, last changed 2019-04-26 17:21 by BreamoreBoy.

Files
File name Uploaded Description Edit
memoryview-array-value.patch sbt, 2012-05-29 14:59 review
memoryview-array-value.patch sbt, 2014-07-08 15:12 review
Messages (3)
msg161892 - (view) Author: Richard Oudkerk (sbt) * (Python committer) Date: 2012-05-29 14:59
The attached patch enables creation of shared objects allocated from shared memory using memoryview objects instead of ctypes.

This enables the use of shared memory on systems where ctypes is unavailable.

The new functions/classes RawArray, RawValue, Array and Array have been added to multiprocessing.heap.  They are almost equivalent to the functions/classes of the same name in multiprocessing and multiprocessing.sharedctypes when a letter typecode is used (rather than a ctypes type).

The differences in behaviour are due to the differences between memoryview objects and ctypes arrays.  The most noticeable is the fact that you can't set a slice using an arbitrary sequence, so

    arr = multiprocessing.RawArray('i', [0]*10)
    arr[:3] = [1,2,3]

has to be rewritten to something like

    arr = multiprocessing.heap.RawArray('i', [0]*10)
    arr[:3] = array.array('i', [1,2,3])

(No documetation yet.)
msg222133 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2014-07-02 21:40
@Richard I assume that you'll be following this up.
msg222567 - (view) Author: Richard Oudkerk (sbt) * (Python committer) Date: 2014-07-08 15:12
Updated version of the patch.  Still needs docs.
History
Date User Action Args
2019-04-26 17:21:56BreamoreBoysetnosy: - BreamoreBoy
2015-01-16 08:31:28pitrousetnosy: + davin
2014-07-08 15:12:08sbtsetfiles: + memoryview-array-value.patch

messages: + msg222567
2014-07-02 21:40:05BreamoreBoysetnosy: + BreamoreBoy

messages: + msg222133
versions: + Python 3.5, - Python 3.3
2012-06-05 22:12:11pitrousetnosy: + pitrou, neologix
2012-05-29 14:59:42sbtcreate