Qwt doesn't take care of races at all. I remember a discussion ( almost 10 years ago ), whether QwtData should offer some sort of lock mechanisms, but in the end the decision was to leave this to the application code ( can't remember the arguments and if they are still valid today ).
A possible solution (implemented in the oscilloscope example in SVN trunk ) is to add lock/unlock methods to your data object using them in your sampling thread and the paint operations ( YourPlot::replot() or YourCurve::draw() ).
Uwe
Bookmarks