Data unchanged when passing data to Python in multiprocessing shared memory

Jen Kris jenkris at tutanota.com
Wed Feb 2 13:16:19 EST 2022


It's not clear to me from the struct module whether it can actually auto-detect endianness.  I think it must be specified, just as I had to do with int.from_bytes().  In my case endianness was dictated by how the four bytes were populated, starting with the zero bytes on the left.  


Feb 1, 2022, 21:30 by wlfraed at ix.netcom.com:

> On Wed, 2 Feb 2022 00:40:22 +0100 (CET), Jen Kris <jenkris at tutanota.com>
> declaimed the following:
>
>>
>> breakup = int.from_bytes(byte_val, "big")
>>
> >print("this is breakup " + str(breakup))
>
>>
>>
> >Python prints:  this is breakup 32894
>
>>
>>
> >Note that I had to switch from little endian to big endian.  Python is little endian by default, but in this case it's big endian.  
>
>>
>>
> Look at the struct module. I'm pretty certain it has flags for big or
> little end, or system native (that, or run your integers through the
> various "network byte order" functions that I think C and Python both
> support.
>
> https://www.gta.ufrj.br/ensino/eel878/sockets/htonsman.html
>
>
> >However, if anyone on this list knows how to pass data from a non-Python language to Python in multiprocessing.shared_memory please let me (and the list) know.  
>
>  <pondering>MMU cache lines not writing through to RAM? Can't find
> anything on Google to force a cache flush</pondering> Can you test on a
> different OS? (Windows vs Linux)
>
>
>
> -- 
>  Wulfraed                 Dennis Lee Bieber         AF6VN
>  wlfraed at ix.netcom.com    http://wlfraed.microdiversity.freeddns.org/
> -- 
> https://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list