Nathaniel J Villaume wrote:
 > Hi, 
 > 
 > I have a simple user-space program (see below) that tries to
 > create a heap. If the heap already exists, then the program tries
 > to delete it. I have no other threads binding to the heap.
 > 
 > I can create, but not delete the heap. The error returned is
 > -EPERM. According to the API manual, this means the call occurred
 > in an asynchronous context. What does this mean, exactly? How
 > should I delete this heap? 
 > 
 > Any advice?

You should not try and delete a heap if you did not succeed in creating
or binding it. The contents of the RT_HEAP object are uninitialized
when rt_heap_create fails, rt_heap_delete call munmap passing the
contents of this uninitialized object, and munmap returns -1 with errno
set to EINVAL. rt_heap_delete should be fixed to return -errno in this
case, but you should bind the heap before deleting it.

-- 


                                            Gilles Chanteperdrix.

_______________________________________________
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help

Reply via email to