Annotation of parser3/src/classes/memory.C, revision 1.15
1.2 paf 1: /** @file
2: Parser: @b memory parser class.
3:
1.12 moko 4: Copyright (c) 2001-2017 Art. Lebedev Studio (http://www.artlebedev.com)
1.2 paf 5: Author: Alexandr Petrosian <paf@design.ru>(http://paf.design.ru)
6: */
7:
8: #include "pa_common.h"
9: #include "pa_vmemory.h"
10: #include "pa_request.h"
11:
1.15 ! moko 12: volatile const char * IDENT_MEMORY_C="$Id: memory.C,v 1.14 2019/12/25 22:22:06 moko Exp $" IDENT_PA_VMEMORY_H;
1.9 moko 13:
1.2 paf 14: class MMemory: public Methoded {
15: public:
16: MMemory();
17:
18: public: // Methoded
19: bool used_directly() { return false; }
20: };
21:
22: // global variables
23:
1.11 moko 24: DECLARE_CLASS_VAR(memory, new MMemory);
1.2 paf 25:
1.3 paf 26: #ifdef GC_DEBUG
1.13 moko 27: extern "C" void GC_generate_random_backtrace();
1.3 paf 28: #endif
29:
1.4 paf 30: static void _compact(Request& r, MethodParams&) {
1.2 paf 31: r.wipe_unused_execution_stack();
32: #ifndef PA_DEBUG_DISABLE_GC
1.3 paf 33: {
1.15 ! moko 34: GC_enable();
1.3 paf 35: GC_gcollect();
1.15 ! moko 36: GC_disable();
1.13 moko 37: #ifdef GC_DEBUG
38: GC_generate_random_backtrace();
39: #endif
1.3 paf 40: }
41: #endif
1.13 moko 42: }
1.2 paf 43:
44: // constructor
45:
46: MMemory::MMemory(): Methoded("memory") {
47: // ^compact[]
48: add_native_method("compact", Method::CT_STATIC, _compact, 0, 0);
49: }
E-mail: