Annotation of parser3/src/classes/memory.C, revision 1.13
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.13 ! moko 12: volatile const char * IDENT_MEMORY_C="$Id: memory.C,v 1.12 2017/02/07 22:00:29 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: {
34: int saved=GC_dont_gc;
35: GC_dont_gc=0;
36: GC_gcollect();
1.13 ! moko 37: #ifdef GC_DEBUG
! 38: GC_generate_random_backtrace();
! 39: #endif
1.3 paf 40: GC_dont_gc=saved;
41: }
42: #endif
1.13 ! moko 43: }
1.2 paf 44:
45: // constructor
46:
47: MMemory::MMemory(): Methoded("memory") {
48: // ^compact[]
49: add_native_method("compact", Method::CT_STATIC, _compact, 0, 0);
50: }
E-mail: