Hi
Is this call thread safe?
Rast_get_row(fds[j], rowbuf, row, maptype);
I've been getting error while trying to put it in an OpenMP loop:
Also same question about this two calls:
ptr = G_incr_void_ptr(ptr, Rast_cell_size(maptype));
maptype = Rast_get_map_type(fds[j]);
Thanks,
Peng
Peng Du wrote:
Is this call thread safe?
Rast_get_row(fds[j], rowbuf, row, maptype);
I've been getting error while trying to put it in an OpenMP loop:
It should be safe to have multiple concurrent Rast_get_row() calls
provided that they refer to different maps. I put some effort into
fixing this issue for the multi-threaded r.mapcalc. Of course, it's
always possible that I overlooked something.
It definitely isn't safe to have multiple concurrent Rast_get_row()
calls for different rows within the same map.
Also, any multi-threaded code should call G_init_all() and
Rast_init_all() before creating additional threads, in order to
prevent race conditions with first-use initialisation.
Also same question about this two calls:
ptr = G_incr_void_ptr(ptr, Rast_cell_size(maptype));
maptype = Rast_get_map_type(fds[j]);
These are both safe.
--
Glynn Clements <glynn@gclements.plus.com>