aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/wndmgr/gc.cpp
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/wndmgr/gc.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Wasabi/api/wndmgr/gc.cpp')
-rw-r--r--Src/Wasabi/api/wndmgr/gc.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/Src/Wasabi/api/wndmgr/gc.cpp b/Src/Wasabi/api/wndmgr/gc.cpp
new file mode 100644
index 00000000..c312b9ea
--- /dev/null
+++ b/Src/Wasabi/api/wndmgr/gc.cpp
@@ -0,0 +1,24 @@
+#include <precomp.h>
+#include "gc.h"
+
+GarbageCollector *garbageCollector=NULL;
+
+GarbageCollector::GarbageCollector() {
+ last = 0;
+ WASABI_API_SYSCB->syscb_registerCallback(this);
+}
+
+GarbageCollector::~GarbageCollector() {
+ WASABI_API_SYSCB->syscb_deregisterCallback(this);
+}
+
+int GarbageCollector::gccb_onGarbageCollect() {
+ uint32_t tc = Wasabi::Std::getTickCount();
+ if (tc < last + 10000) return 0;
+
+ last = tc;
+#ifdef WIN32
+ //SetProcessWorkingSetSize(GetCurrentProcess(), -1, -1);
+#endif
+ return 0;
+}