Set API:

Module shared_atomic.atomic_set on Linux and macOS

class shared_atomic.atomic_set.atomic_set

set provide atomic operations, the set should be no longer than 8 bytes

:attributes

encoding: readonly string character set

initial_length: readonly total length in bits

value: read/write value of the bytearray

int_value: readonly int value

constructor to initialize the set, the set should be no longer than 8 bytes

Parameters
  • initial – initial value of the set, if the initial value is longer than 8 bytes, please specify the trimming target length, or else it would fail.

  • encoding – , character set, default ‘utf-8’n

  • mode – the mode in which the set will be shared. ‘singleprocessing’ or ‘s’ for single process, ‘multiprocessing’ or ‘m’ for multiprocessing.

  • windows_unix_compatibility – whether the source code should be compatible with unix platform.

get_int()

Get the whole integer representation from the set, the whole set would be treated as a large integer

Returns

the integer representation

get_set()

Get the set atomically

Returns

the set

reencode()

Change the encoding of the string, if the original size is not enough, it will elongate the string, if 8 bytes are not enough, it will fail.

Parameters

newencode – new encoding, such as ‘utf-8’, ‘utf-16-le’

Returns

None

set_compare_and_set()

Compare and set atomically. This compares the contents of self with the contents of i. If equal, the operation is a read-modify-write operation that writes data into self. If they are not equal, the operation is a read and the current contents of self are written into i.

Parameters
  • i – atomic_set object

  • data – atomic_set object

Returns

if j is equal to i return True, else return False

set_compare_and_set_value()

Compare and set atomically, This compares the contents of self with the contents of i. If equal, the operation is a read-modify-write operation that writes n into self. If they are not equal, no action will be taken.

Parameters
  • n – the set to be compared with

  • i – another bytes to be ready to set to self if comparision return True

Returns

the original value

set_get_and_set()

Get and set atomically

Parameters

data – new data set

Returns

the original set

set_int()

Set the whole integer representation from the set, the whole set would be treated as a large integer

Returns

None

set_set()

Set the value in the set, if the new data is longer than the original size of the set. it will expand the set accordingly which would lose atomicity. the size of the set can be check with self.size

Parameters

data – input set

Returns

None

set_shift()

Value exchange between 3 pointers in 2 groups atomically, the initial_length field will be updated but not atomically. store i in itself after store itself in j

Parameters
  • i – one atomic_set

  • j – another atomic_set

Returns

None

set_store()

Atomically store contents from another set to this set, if the other set is different with this one in size, or the other set is different with this one in encoding, the function will fail.

Parameters

i – the atomic_set to set from

Returns

None

shared_atomic.atomic_set.set_compare_and_set()

Compare and set atomically. This compares the contents of atomic_set j with the contents of i. If equal, the operation is a read-modify-write operation that writes data into integer. If they are not equal, the operation is a read and the current contents of j are written into i.

Parameters
  • intput_set – target set to change.

  • j – atomic_set object

  • i – atomic_set object

  • data – atomic_set object

Returns

if j is equal to i return True, else return False

shared_atomic.atomic_set.set_compare_and_set_value()

Compare and swap atomically, This compares the contents of self with the contents of n. If equal, the operation is a read-modify-write operation that writes n into self. If they are not equal, No operation is performed.

Parameters
  • intput_set – target set to change.

  • i – the value to set to

  • n – The value to be compared with

Returns

the original set

shared_atomic.atomic_set.set_get_and_set()

Get and set atomically

Parameters
  • intput_set – target set to change.

  • data – new data set

Returns

the original set

shared_atomic.atomic_set.set_get_int()

Get the whole integer representation from the set, the whole set would be treated as a large integer

Parameters

intput_set – target set.

Returns

the integer representation

shared_atomic.atomic_set.set_get_set()

Get the set atomically

Parameters

intput_set – target set.

Returns

the set

shared_atomic.atomic_set.set_set_int()

Set the whole integer representation from the set, the whole set would be treated as a large integer

Parameters
  • intput_set – target set to change.

  • integer – integer representation of the new value.

Returns

None

shared_atomic.atomic_set.set_set_set()

Set the value in the set, if the new data is longer than the original size of the set. it will expand the set accordingly which would lose atomicity. the size of the set can be checked with set.size

Parameters
  • intput_set – target set to change.

  • data – input set

Returns

None

shared_atomic.atomic_set.set_shift()

Value exchange between 3 pointers in 2 groups atomically, the initial_length field will be updated but not atomically. store i in n after store n in j

Parameters
  • n – one atomic_set

  • i – one atomic_set

  • j – one atomic_set

Returns

None

shared_atomic.atomic_set.set_store()

Atomically store contents from another set to this set, if the other set is different with this one in size, or the other set is different with this one in encoding, the function will fail.

Parameters
  • n – the atomic_set to set

  • i – the atomic_set to set from

Returns

None

On Microsoft Windows

class shared_atomic.atomic_set.atomic_set

set provide atomic operations, the set should be no longer than 8 bytes :attributes

encoding: readonly string character set

initial_length: readonly total length in bits

value: read/write value of the bytearray

int_value: readonly int value

constructor to initialize the set, the set should be no longer than 8 bytes

Parameters
  • initial – initial value of the set, if the initial value is longer than 8 bytes, please specify the trimming target length, or else it would fail.

  • encoding – , character set, default ‘utf-8’n

  • mode – the mode in which the set will be shared. ‘singleprocessing’ or ‘s’ for single process, ‘multiprocessing’ or ‘m’ for multiprocessing.

  • windows_unix_compatibility – whether the source code should be compatible with unix platform.

get_int()

Get the whole integer representation from the set, the whole set would be treated as a large integer

Returns

the integer representation

get_set()

Get the set atomically

Returns

the set

reencode()

Change the encoding of the string, if the original size is not enough, it will elongate the string, if 8 bytes are not enough, it will fail.

Parameters

newencode – new encoding, such as ‘utf-8’, ‘utf-16-le’

Returns

None

set_compare_and_set_value()

Compare and set atomically, This compares the contents of self with the contents of i. If equal, the operation is a read-modify-write operation that writes n into self. If they are not equal, the operation is a read and the current contents of itself are written into i.

Parameters
  • i – the set to be compared with

  • n – another bytes to be ready to set to self if comparision return True

Returns

if self is equal to i return True, else return False

set_get_and_set()

Get and set atomically

Parameters

data – new data set

Returns

the original set

set_int()

Set the whole integer representation from the set, the whole set would be treated as a large integer

Returns

None

set_set()

Set the value in the set, if the new data is longer than the original size of the set. it will expand the set accordingly which would lose atomicy. the size of the set can be check with self.size

Parameters

data – input set

Returns

None

shared_atomic.atomic_set.set_compare_and_set_value()

Compare and swap atomically, This compares the contents of self with the contents of n. If equal, the operation is a read-modify-write operation that writes n into self. If they are not equal, No operation is performed.

Parameters
  • intput_set – target set to change.

  • reference – the reference used in subprocess

  • i – the value to set to

  • n – The value to be compared with

Returns

the original set

shared_atomic.atomic_set.set_get_and_set()

Get and set atomically

Parameters
  • intput_set – target set to change.

  • reference – the reference used in subprocess

  • data – new data set

Returns

the original set

shared_atomic.atomic_set.set_get_int()

Get the whole integer representation from the set, the whole set would be treated as a large integer

Parameters
  • intput_set – target set.

  • reference – the reference used in subprocess

Returns

the integer representation

shared_atomic.atomic_set.set_get_set()

Get the set atomically

Parameters
  • intput_set – target set.

  • reference – the reference used in subprocess

Returns

the set

shared_atomic.atomic_set.set_set_int()

Set the whole integer representation from the set, the whole set would be treated as a large integer

Parameters
  • intput_set – target set.

  • reference – the reference used in subprocess

  • integer – integer representation of the new value.

Returns

None

shared_atomic.atomic_set.set_set_set()

Set the value in the set, if the new data is longer than the original size of the set. it will expand the set accordingly which would lose atomicity. the size of the set can be checked with set.size

Parameters
  • intput_set – target set to change.

  • reference – the reference used in subprocess

  • data – input set

Returns

None