fe79ac5c42
* FXJSONFile class added. Base class FXJSON improved and generalized. * FXIO now tracks file position; new implementation of FXIO counts bytes read/written. * FXPipe API's added, should now be functional. * Renamed FXStringMap to FXStringDictionary for consistency. * Fixed a few problems in FXVariantMap, FXDictionary. * Fixed possible race in FXThreadPool::startWorker. * New FXThreadException class added; FXThreadException will cause graceful early termination of a thread when thrown inside of FXThread. * FXThread now interceps only FXException (and subclasses), rethrows other exceptions. This was necessary due to the way GNU C++ library performs thread exits. * Non FOX exceptions thrown inside FXThread are now rethrown; but attempts are made to maintain proper bookkeeping when unrolling the stack. * FXThreadPool tasks may throw exceptions. FXThreadPool now intercepts all FOX exceptions and updates bookkeeping when other exceptions are thrown. Note: tasks in FXThreadPool are executed by threads, but since sometimes the main thread is executing tasks in FXThreadPool also we can not allow tasks to throw FXThreadException. * Exceptions thrown inside FXWorker now terminate the worker, and reclaim worker's thread and memory. Before exceptions were all caught, making it impossible to pass return codes from worker execution. * Exceptions thrown in FXTaskGroup::Task correctly reclaim the FXTaskGroup::Task now, and will update completion count and notifications appropriately. * The exception philosophy in FOX is that the library only manages FXExceptions and their subclasses; other exceptions will be either uncaught or caught and rethrown after bookkeeping updates; thus programs should be careful throwing exceptions other than FXExceptions. |
||
---|---|---|
.. | ||
patch-lib_FXAtomic.cpp |