anchor.diff:      NewState = State#state{handle=Handle},
       {noreply, NewState};
   
  -handle_cast(close, State) ->
  +handle_cast(close, State) when State#state.dir_monitor =/= none ->
       #state{
           torrent=Torrent,
           handle=Handle,
  
positive.code: 
  init([TorrentID, RelPath, FullPath]) ->
      {ok, DirPid} = etorrent_io:await_directory(TorrentID),
      DirMonitor = etorrent:monitor(process, DirPid),
      _ = etorrent_io:register_file_server(TorrentID, RelPath),
      InitState = #state{
          torrent=TorrentID,
          handle=closed,
          relpath=RelPath,
          fullpath=FullPath,
          dir_monitor=DirMonitor},
      {ok, InitState}.
  
  handle_call({read, _, _}, _, State) when State#state.handle == closed ->
  
negative.code: 
  -record(state, {
      torrent :: torrent_id(),
      handle=closed :: closed | file:io_device(),
      relpath :: file_path(),
      fullpath :: file_path(),
      dir_monitor=none :: none | reference(),
      await_ref=none :: none | reference()}).
  
  
  -spec start_link(torrent_id(), file_path(), file_path()) -> {'ok', pid()}.
  