Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:20
ecache
ecache_server-kill-TTL-reaper-when-dirty-or-gen...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ecache_server-kill-TTL-reaper-when-dirty-or-generic_dirty.patch of Package ecache
From 848fa838622f1d2e69c139890b123f89c2179ed5 Mon Sep 17 00:00:00 2001 From: Led <ledest@gmail.com> Date: Mon, 21 Mar 2016 01:13:57 +0200 Subject: [PATCH] ecache_server: kill TTL reaper when dirty or generic_dirty --- src/ecache_server.erl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ecache_server.erl b/src/ecache_server.erl index 8e7b2dc..9032213 100644 --- a/src/ecache_server.erl +++ b/src/ecache_server.erl @@ -164,12 +164,12 @@ handle_cast({dirty, Id, NewData}, State) -> {noreply, State}; handle_cast({dirty, Id}, #cache{datum_index = DatumIndex} = State) -> - ets:delete(DatumIndex, key(Id)), + delete_datum(DatumIndex, key(Id)), {noreply, State}; handle_cast({generic_dirty, M, F, A}, #cache{datum_index = DatumIndex} = State) -> - ets:delete(DatumIndex, key(M, F, A)), + delete_datum(DatumIndex, key(M, F, A)), {noreply, State}. terminate(_Reason, _State) -> @@ -210,6 +210,12 @@ unkey({ecache_multi, {M, F, A}}) -> {M, F, A}. %% Private %% =================================================================== +delete_datum(DatumIndex, Key) -> + case ets:take(DatumIndex, Key) of + [#datum{ttl_reaper = Reaper}] when is_pid(Reaper) -> exit(Reaper, kill); + _ -> ok + end. + -compile({inline, [{create_datum, 4}]}). create_datum(DatumKey, Data, TTL, Type) -> Timestamp = os:timestamp(), -- 2.1.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor