@@ -315,7 +315,7 @@ open_with_absolute_path(Path, Mode, Options) ->
315
315
case IsWriter andalso HasWriter of
316
316
true -> {error , writer_exists };
317
317
false -> {ok , Ref } = new_closed_handle (Path , Mode1 , Options ),
318
- case get_or_reopen ([{Ref , new }]) of
318
+ case get_or_reopen_timed ([{Ref , new }]) of
319
319
{ok , [_Handle1 ]} ->
320
320
RCount1 = case is_reader (Mode1 ) of
321
321
true -> RCount + 1 ;
@@ -674,7 +674,7 @@ with_handles(Refs, Fun) ->
674
674
with_handles (Refs , reset , Fun ).
675
675
676
676
with_handles (Refs , ReadBuffer , Fun ) ->
677
- case get_or_reopen ([{Ref , reopen } || Ref <- Refs ]) of
677
+ case get_or_reopen_timed ([{Ref , reopen } || Ref <- Refs ]) of
678
678
{ok , Handles0 } ->
679
679
Handles = case ReadBuffer of
680
680
reset -> [reset_read_buffer (H ) || H <- Handles0 ];
@@ -712,6 +712,10 @@ with_flushed_handles(Refs, ReadBuffer, Fun) ->
712
712
end
713
713
end ).
714
714
715
+ get_or_reopen_timed (RefNewOrReopens ) ->
716
+ file_handle_cache_stats :update (
717
+ io_file_handle_open_attempt , fun () -> get_or_reopen (RefNewOrReopens ) end ).
718
+
715
719
get_or_reopen (RefNewOrReopens ) ->
716
720
case partition_handles (RefNewOrReopens ) of
717
721
{OpenHdls , []} ->
0 commit comments