He writes: Here are the final changes to add threads to the tile loading. All the thread related code is in the new FGTileLoader class. ./configure.in ./acconfig.h Added --with-threads option and corresponding ENABLE_THREADS definition. The default is no threads. ./src/Scenery/tilemgr Removed load_queue and associated references. This has been replaced by a new class FGTileLoader in FGNewCache. Made the global variable global_tile_cache a member. schedule_needed(): removed global_tile_cache.exists() tests since sched_tile() effectively repeats the test. initialize_queue(): removed code that loads tiles since this is now performed by FGTileLoader. update(): ditto ./src/Scenery/newcache Added new class FGTileLoader to manage tile queuing and loading. tile_map typedefs are private. exists() is a const member function. fill_in(): deleted load_tile(): added. ./src/Scenery/FGTileLoader The new threaded tile loader. Maintains a queue of tiles waiting to be loaded and an array of one or more threads to load the tiles. Currently only a single thread is created. The queue is guarded by a mutex to synchronize access. A condition variable signals the thread when the queue is non-empty. CLO: I made a few tweaks to address a couple issues, hopefully what we have is solid, but now we kick it out to the general public to see. :-)
11 lines
283 B
Makefile
11 lines
283 B
Makefile
noinst_LIBRARIES = libScenery.a
|
|
|
|
libScenery_a_SOURCES = \
|
|
FGTileLoader.cxx FGTileLoader.hxx \
|
|
hitlist.cxx hitlist.hxx \
|
|
newcache.cxx newcache.hxx \
|
|
scenery.cxx scenery.hxx \
|
|
tileentry.cxx tileentry.hxx \
|
|
tilemgr.cxx tilemgr.hxx
|
|
|
|
INCLUDES += -I$(top_srcdir) -I$(top_srcdir)/src
|