Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:18
pcache
pcache-2.0.0-git.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pcache-2.0.0-git.patch of Package pcache
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..03e5e39 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +language: erlang +notifications: + email: false +otp_release: + - 17.4 + - 17.1 + - 17.0 + - R16B03-1 + - R15B03 diff --git a/README.md b/README.md index 22e6bf5..621c1dc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ pcache: Erlang Process Based Cache ================================== +[![Build Status](https://secure.travis-ci.org/mattsta/pcache.png)](http://travis-ci.org/mattsta/pcache) + pcache uses erlang processes to auto-expire cache items. pcache is an improved version of the cache described in http://duomark.com/erlang/publications/acm2006.pdf diff --git a/src/pcache_reaper.erl b/src/pcache_reaper.erl index ccfcde6..cb3fd1c 100644 --- a/src/pcache_reaper.erl +++ b/src/pcache_reaper.erl @@ -25,27 +25,18 @@ start(CacheName, CacheSize) -> %%%---------------------------------------------------------------------- shrink_cache_to_size(_Name, CurrentCacheSize, CacheSize) - when CurrentCacheSize < CacheSize -> + when CurrentCacheSize =< CacheSize -> ok; shrink_cache_to_size(Name, _CurrentCacheSize, CacheSize) -> gen_server:call(Name, reap_oldest), shrink_cache_to_size(Name, pcache:total_size(Name), CacheSize). - pcache_reaper(Name, CacheSize) -> % sleep for 4 seconds - receive - after 4000 -> ok - end, + timer:sleep(4000), % Lame. Account for sizes better. total_size asks every datum for its size. CurrentCacheSize = pcache:total_size(Name), - if - CurrentCacheSize < CacheSize -> ok; - CurrentCacheSize >= CacheSize -> -%io:format("Cache ~p too big! Shrinking...~n", [self()]), -%io:format("CurrentSize: ~p; Target Size: ~p~n", [CurrentCacheSize, CacheSize]), - shrink_cache_to_size(Name, CurrentCacheSize, CacheSize) - end, + shrink_cache_to_size(Name, CurrentCacheSize, CacheSize), pcache_reaper(Name, CacheSize). init([Name, CacheSizeBytes]) -> diff --git a/src/pcache_server.erl b/src/pcache_server.erl index e28d74a..11e7990 100644 --- a/src/pcache_server.erl +++ b/src/pcache_server.erl @@ -287,15 +287,16 @@ launch_memoize_datum(Key, EtsIndex, Module, Accessor, TTL, CachePolicy) -> update_ttl(#datum{started = Started, ttl = TTL, type = actual_time} = Datum) -> + Timestamp = os:timestamp(), % Get total time in seconds this datum has been running. Convert to ms. - StartedNowDiff = timer:now_diff(os:timestamp(), Started) div 1000, + StartedNowDiff = timer:now_diff(Timestamp, Started) div 1000, % If we are less than the TTL, update with TTL-used (TTL in ms too) % else, we ran out of time. expire on next loop. TTLRemaining = if StartedNowDiff < TTL -> TTL - StartedNowDiff; true -> 0 end, - Datum#datum{last_active = os:timestamp(), remaining_ttl = TTLRemaining}; + Datum#datum{last_active = Timestamp, remaining_ttl = TTLRemaining}; update_ttl(Datum) -> Datum#datum{last_active = os:timestamp()}.
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