just compilable
add shared memory management stuff, but nobody knows whether it works fine.
a workaround commit