implement by shared memory, this is a failed example