Matthias Julius schrieb:
>> 0001_removing_unused_gd_images.patch.gz > > This is applied (and a bit more). Thanks. Thanks ;) >> the problem is the GDlib is not thread save... > > I have not tried that one because my knowledge about threading is very > basic. So what do you do about GD? The problem is follow: the main task init a GD object (a image or other stuff) now start u two children both children have now the object into its field of work Now the children die child 1 give the gd object free (DESTROY() and give memory free) child 2 give the gd object free (DESTROY() double free error) crash solutions: u do not use the gd lib befor u call u children u use the gd lib only insert from u children (not tested) u use other metods as then gd lib ;) "gd->compare vs crc's" only living objecte are a problem so: u destroy all gd lib objects befor u call ur children > I think the whole forking/threading subject needs rethinking. > > Currently, the forking is done by zoom levels (one fork per zoom level > maximum) and one layer is processed after the other. This means that > for the captionless layer there is only 1 fork (not that there would > be any work to split up anyway), for maplint there are max. 5 forks > and for the tile layer there are max. 6 forks. On top of that the > workload across the zoom levels es very uneven (z12 will render much > quicker than z17). i have writing the days a nonForkedThreading renderer and he was realy faster as the forked (a finished task get a new job and call not exit ;) the problem was only the double free error ;/ and many more memory usage (realy 4 working tasks ;) >> sorry for my bad englich i hope my code is better ;) > ^ > Yeah, this English is really bad ;-) ;) René _______________________________________________ Tilesathome mailing list [email protected] http://lists.openstreetmap.org/listinfo/tilesathome
