Original bug ID: 4832 Reporter:@mmottl Status: closed (set by @damiendoligez on 2015-03-17T16:08:23Z) Resolution: fixed Priority: normal Severity: minor Version: 3.11.0 Target version: 4.03.0+dev / +beta1 Fixed in version: 4.03.0+dev / +beta1 Category: otherlibs Monitored by: matt @yallop@hcarty@Chris00@mmottl
Though bigarray data lives on the C-heap, the bigarray fill function does not release the OCaml-lock when overwriting it. This may block out the runtime from handling signals or executing other threads. If a large bigarray is memory-mapped, this can lead to many seconds of unresponsiveness.
The text was updated successfully, but these errors were encountered:
There is a trade-off between the cost of releasing the lock (which can be too high for small bigarrays) and the latency when not releasing it (which can be too high for large bigarrays).
We should probably release the lock only when the bigarray is bigger than some threshold.