You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Bug description
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.
Besides taking the size into account for determining when to release the lock, we should also check whether the bigarray was memory-mapped, in which case the lock should also be released, I think.
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
Bug description
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: