Commit Graph

158 Commits

Author SHA1 Message Date
Vivian Mathews 0640633ccc Fix race condition
- the gc finalize for an object races with the janitor.Run goroutine
- because the janitor.stop channel is created in the Run() goroutine this leads
  to a data race.
- fix by creating the channel when the janitor is created
2017-07-21 14:56:50 -04:00
Patrick Mylund Nielsen 7ac151875f Merge pull request #46 from alexedwards/master
Add GetWithExpiration
2017-04-18 19:29:47 -04:00
Patrick Mylund Nielsen ea4bd2a538 LICENSE: Update copyright years 2017-03-26 12:37:11 -04:00
Patrick Mylund Nielsen 96426d0c5b README.md: Remove the unprotected change example since it would actually need external synchronization 2017-03-26 12:36:28 -04:00
Patrick Mylund Nielsen dd1ed0ba63 README.md: Remove one level of indentation and increase 'recommended' cleanupInterval 2017-03-26 12:30:15 -04:00
Alex Edwards 8c11fe2df0 Add GetWithExpiration 2016-12-08 14:50:49 +01:00
Patrick Mylund Nielsen e7a9def80f Add SetDefault() for setting with the default expiration 2016-11-25 18:48:19 -05:00
Patrick Mylund Nielsen 52581776a3 LICENSE: Update copyright year 2016-11-25 14:18:09 -05:00
Patrick Mylund Nielsen 9e6d9117e7 Add 'inlining of expired' note to Items() 2016-11-25 13:57:39 -05:00
Patrick Mylund Nielsen a2d8b56f0c Make Items() return a copy rather than an unsynchronized reference to the underlying items map 2016-11-25 13:56:11 -05:00
Patrick Mylund Nielsen 1881a9bccb Merge pull request #29 from darrenmcc/master
added go syntax highlighting to README
2016-01-27 12:00:04 -05:00
Darren McCleary da6326cd69 added go syntax highlighting to README 2016-01-27 11:56:21 -05:00
Patrick Mylund Nielsen 5849ccb308 remove mu.RUnlock call from get 2016-01-08 15:02:42 -05:00
Patrick Mylund Nielsen 721cc9438c Add BenchmarkRWMutexInterfaceMapGetString 2015-12-03 09:55:58 -05:00
Patrick Mylund Nielsen 8c41258ef3 Add BenchmarkRWMutexInterfaceMapGet 2015-12-03 09:40:14 -05:00
Patrick Mylund Nielsen faf83836bd Change GitHub repository URLs in README 2015-12-02 14:32:12 -05:00
Patrick Mylund Nielsen 66bf7b7a45 Update README to point to new repository URL 2015-12-01 11:18:46 -05:00
Patrick Mylund Nielsen d461c5d2dd 'Inline' set in Set, and do time checks before the lock 2015-12-01 11:08:43 -05:00
Patrick Mylund Nielsen 76f1250a65 Make OnEvicted() a little faster 2015-11-30 16:18:49 -05:00
Patrick Mylund Nielsen 7c1e7f5829 go fmt 2015-11-30 16:04:57 -05:00
Patrick Mylund Nielsen 9fc6f9c73f Add expiring/notexpiring sharded cache benchmarks 2015-11-30 16:04:49 -05:00
Patrick Mylund Nielsen afadf13f9f Back to UnixNano(), syscall dependency isn't worth a few nanoseconds better performance 2015-11-30 15:12:19 -05:00
Patrick Mylund Nielsen f6cdd07cbb Merge branch 'timeval' 2015-11-30 15:02:11 -05:00
Patrick Mylund Nielsen 2f0c74ebb8 Use intermediary timevals 2015-11-30 15:02:02 -05:00
Patrick Mylund Nielsen 2f60853f80 No need for emptyTime anymore 2015-11-30 14:49:18 -05:00
Patrick Mylund Nielsen 01842a547c Use timevals 2015-11-30 14:47:22 -05:00
Patrick Mylund Nielsen 1924ec3baf Remove expired() since it's no longer used (because of the inlining) 2015-11-30 14:14:52 -05:00
Patrick Mylund Nielsen 8084bd02b5 Inline expiration checks manually for performance 2015-11-30 14:12:45 -05:00
Patrick Mylund Nielsen eb4f9f6b2f Use UnixNano int64s instead of Time 2015-11-30 13:54:01 -05:00
Patrick Mylund Nielsen 31c7be0bed 'Inline' Get and Expired 2015-11-30 13:50:17 -05:00
Patrick Mylund Nielsen 4e0d34ef00 Only get the current time once in the DeleteExpired loop 2015-11-30 13:39:27 -05:00
Patrick Mylund Nielsen a45ed98559 Add benchmarks that use expiring items (time.Now calls) and rename BenchmarkDeleteExpired to BenchmarkDeleteExpiredLoop for clarity 2015-11-30 10:45:30 -05:00
Patrick Mylund Nielsen 28ab885a1a Make BenchmarkDeleteExpired more meaningful 2015-11-28 15:13:26 -05:00
Patrick Mylund Nielsen cf4e165754 Add IncrementInt benchmark 2015-11-28 14:56:23 -05:00
Patrick Mylund Nielsen 901b2413ee Improve cache locality by removing Item-related pointers 2015-11-28 14:47:46 -05:00
Patrick Mylund Nielsen 3d4d09ca0b Add a benchmark for DeleteExpired() 2015-11-28 14:35:38 -05:00
Patrick Mylund Nielsen 0ba3e0049c Update copyright years 2015-11-28 14:21:44 -05:00
Patrick Mylund Nielsen ac0fcef49b Clarify that the OnEvicted function isn't called when an item is overwritten 2015-11-28 12:27:08 -05:00
Patrick Mylund Nielsen e9441b12e0 Add mutex-using test condition to TestOnEvicted 2015-11-28 12:22:52 -05:00
Patrick Mylund Nielsen 3f2c810ea1 Add OnEvicted() 2015-11-27 22:00:08 -05:00
Patrick Mylund Nielsen a0136a8980 Don't expose the cache mutex 2015-11-27 13:03:24 -05:00
Patrick Mylund Nielsen a122e14c4b Merge pull request #23 from databus23/patch-1
Fix leaking the janitor ticker when shutting down
2015-10-13 08:21:26 -04:00
Fabian Ruff fe045e4040 Fix leaking the janitor ticker when shutting down 2015-10-13 12:55:54 +02:00
Patrick Mylund Nielsen 93d85800f2 README.md: Add missing 'time' import to example 2015-03-03 09:09:38 -05:00
Patrick Mylund Nielsen 03284ca422 Replace sharded hash function/misc mods 2014-12-22 10:37:59 -05:00
Patrick Mylund Nielsen 8a2f4f19ef go fmt 2014-12-22 02:48:52 -05:00
Patrick Mylund Nielsen e3a846e1f9 Clarify what NoExpiration and DefaultExpiration are 2014-12-22 02:47:08 -05:00
Patrick Mylund Nielsen a1dd6b7fff s/NewFrom/NewFrom()/ in NewFrom doc 2014-12-22 02:39:59 -05:00
Patrick Mylund Nielsen 9ea75a8586 s/NewFrom/NewFrom()/ in Load/LoadFile/Save/SaveFile docs 2014-12-22 02:37:46 -05:00
Patrick Mylund Nielsen 873e78f0db s/gob.Register/gob.Register()/ in NewFrom doc 2014-12-22 02:30:02 -05:00