New submission from Marc Guetg <guetg.m...@gmail.com>: It seems like sharing a string over processes is not possible.
#!/usr/bin/env python3 import multiprocessing import threading import ctypes def fun(share_c, share_s, set_c, set_s, name): print(f'{name}: {share_c.value}; {share_s.value}') share_c.value = set_c share_s.value = set_s print(f'{name}: {share_c.value}; {share_s.value}') if __name__ == '__main__': share_c = multiprocessing.Value(ctypes.c_wchar, 'a') share_s = multiprocessing.Value(ctypes.c_wchar_p, 'aa') print(f'pre_thread: {share_c.value}; {share_s.value}') thread = threading.Thread(target=fun, args=(share_c, share_s, 'b', 'bb', 'thread')) thread.start() thread.join() print(f'post_thread: {share_c.value}; {share_s.value}') process = multiprocessing.Process(target=fun, args=(share_c, share_s, 'c', 'cc', 'process')) process.start() process.join() print(f'post_process: {share_c.value}', end='; ') print(share_s.value) # <--- Blows here produces: pre_thread: a; aa thread: a; aa thread: b; bb post_thread: b; bb process: b; bb process: c; cc post_process: c; Traceback (most recent call last): File "test2.py", line 30, in <module> print(share_s.value) # <--- Blows here File "<string>", line 5, in getvalue ValueError: character U+ff92f210 is not in range [U+0000; U+10ffff] Where the character value in the error message is different every time. To me this seems like a bug as it is working properly with threads as well as single characters. (Maybe relevant question also here: https://stackoverflow.com/questions/47763878/how-to-share-string-between-processes?noredirect=1#comment82492062_47763878) For the case it matters: Python 3.6.1 (Anaconda 4.4.0) on RHEL 6 ---------- components: Library (Lib), Unicode messages: 308144 nosy: ezio.melotti, magu, vstinner priority: normal severity: normal status: open title: Value error for string shared memory in multiprocessing type: crash versions: Python 3.6 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32291> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com