Just a quick question José...
Why don't you allocate some memory (making sure to set the MEMF_PUBLIC flag ;-)), then reserve the first word for use as a flag.
Then pass a pointer to this memory block to your child task.
Now both programs can use the memory block, but make sure you check the first word before you read/write the memory block.
If you want to read/write the memory block, read the first word, if it contains -1 (or something) then the memory block is in use, and you can't use it.
If it reads 0, then set the first word to -1 and use the memory block... once you finish using it write 0 to the first word.
That should do what you want to do.