Fix-up message exchange on confirm delete

This commit is contained in:
martinsumner 2017-01-17 11:18:58 +00:00
parent 14ebf94e56
commit c99c50ce6e
2 changed files with 9 additions and 10 deletions

View file

@ -181,7 +181,7 @@
pcl_workforclerk/1, pcl_workforclerk/1,
pcl_manifestchange/2, pcl_manifestchange/2,
pcl_confirml0complete/4, pcl_confirml0complete/4,
pcl_confirmdelete/2, pcl_confirmdelete/3,
pcl_close/1, pcl_close/1,
pcl_doom/1, pcl_doom/1,
pcl_registersnapshot/2, pcl_registersnapshot/2,
@ -297,8 +297,8 @@ pcl_manifestchange(Pid, Manifest) ->
pcl_confirml0complete(Pid, FN, StartKey, EndKey) -> pcl_confirml0complete(Pid, FN, StartKey, EndKey) ->
gen_server:cast(Pid, {levelzero_complete, FN, StartKey, EndKey}). gen_server:cast(Pid, {levelzero_complete, FN, StartKey, EndKey}).
pcl_confirmdelete(Pid, FileName) -> pcl_confirmdelete(Pid, FileName, FilePid) ->
gen_server:cast(Pid, {confirm_delete, FileName}). gen_server:cast(Pid, {confirm_delete, FileName, FilePid}).
pcl_getstartupsequencenumber(Pid) -> pcl_getstartupsequencenumber(Pid) ->
gen_server:call(Pid, get_startup_sqn, infinity). gen_server:call(Pid, get_startup_sqn, infinity).
@ -469,20 +469,18 @@ handle_cast({release_snapshot, Snapshot}, State) ->
Snapshot), Snapshot),
leveled_log:log("P0003", [Snapshot]), leveled_log:log("P0003", [Snapshot]),
{noreply, State#state{manifest=Manifest0}}; {noreply, State#state{manifest=Manifest0}};
handle_cast({confirm_delete, Filename}, State=#state{is_snapshot=Snap}) handle_cast({confirm_delete, Filename, FilePid}, State=#state{is_snapshot=Snap})
when Snap == false -> when Snap == false ->
case State#state.work_ongoing of case State#state.work_ongoing of
false -> false ->
R2D = leveled_manifest:ready_to_delete(State#state.manifest, R2D = leveled_manifest:ready_to_delete(State#state.manifest,
Filename), Filename),
case R2D of case R2D of
{true, Pid} -> {true, M0} ->
leveled_log:log("P0005", [Filename]), leveled_log:log("P0005", [Filename]),
ok = leveled_sst:sst_deleteconfirmed(Pid), ok = leveled_sst:sst_deleteconfirmed(FilePid),
M0 = leveled_manifest:delete_confirmed(State#state.manifest,
Filename),
{noreply, State#state{manifest=M0}}; {noreply, State#state{manifest=M0}};
{false, _Pid} -> {false, _M0} ->
{noreply, State} {noreply, State}
end; end;
true -> true ->

View file

@ -363,7 +363,8 @@ delete_pending(close, _From, State) ->
delete_pending(timeout, State) -> delete_pending(timeout, State) ->
ok = leveled_penciller:pcl_confirmdelete(State#state.penciller, ok = leveled_penciller:pcl_confirmdelete(State#state.penciller,
State#state.filename), State#state.filename,
self()),
{next_state, delete_pending, State, ?DELETE_TIMEOUT}; {next_state, delete_pending, State, ?DELETE_TIMEOUT};
delete_pending(close, State) -> delete_pending(close, State) ->
leveled_log:log("SST07", [State#state.filename]), leveled_log:log("SST07", [State#state.filename]),