To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 178
177  |  179
Subject: 
IS free()'s operation atomic?
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 29 Apr 1999 13:00:05 GMT
Viewed: 
1136 times
  
Hi all

I think that free() operation in mm.c is not ISR safe in multitasking
mode. This operation is not keep coherence about value of
mm_first_free,is it?
------------  in mm.c -----------------
// for task safe operations, free needs to be
// atomic and nonblocking, because it may be
// called by the scheduler.
//
// therefore, just update mm_first_free
//
if(ptr<mm_first_free || mm_first_free<&mm_start)
        mm_first_free=ptr;
----------------------------------------
Please any advice me.

Thanks.

Jiro Eto



Message has 1 Reply:
  Re: IS free()'s operation atomic?
 
(...) I agree, free() is not ISR safe. One thread can get preempted after the check but before the store, and a second thread can adjust mm_first_free, making the first thread's check invalid. -Kekoa (25 years ago, 29-Apr-99, to lugnet.robotics.rcx.legos)

2 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR