Discard the idle gc module.
This commit is contained in:
		
					parent
					
						
							
								e995383401
							
						
					
				
			
			
				commit
				
					
						4acbbd1ad7
					
				
			
		
					 4 changed files with 0 additions and 85 deletions
				
			
		
							
								
								
									
										1
									
								
								atom.gyp
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								atom.gyp
									
										
									
									
									
								
							|  | @ -114,7 +114,6 @@ | |||
|       'common/api/api_messages.h', | ||||
|       'common/api/atom_api_clipboard.cc', | ||||
|       'common/api/atom_api_clipboard.h', | ||||
|       'common/api/atom_api_idle_gc.cc', | ||||
|       'common/api/atom_api_id_weak_map.cc', | ||||
|       'common/api/atom_api_id_weak_map.h', | ||||
|       'common/api/atom_api_shell.cc', | ||||
|  |  | |||
|  | @ -7,9 +7,6 @@ if process.platform is 'win32' | |||
|   console.log = console.error = console.warn = process.log | ||||
|   process.stdout.write = process.stderr.write = process.log | ||||
| 
 | ||||
| # Enable idle gc. | ||||
| process.atomBinding('idle_gc').start() | ||||
| 
 | ||||
| # Provide default Content API implementations. | ||||
| atom = {} | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,80 +0,0 @@ | |||
| // Copyright (c) 2013 GitHub, Inc. All rights reserved.
 | ||||
| // Copyright (c) 2012, Ben Noordhuis <info@bnoordhuis.nl>.
 | ||||
| // Use of this source code is governed by a BSD-style license that can be
 | ||||
| // found in the LICENSE file.
 | ||||
| 
 | ||||
| #include "vendor/node/src/node.h" | ||||
| 
 | ||||
| namespace { | ||||
| 
 | ||||
| using v8::Arguments; | ||||
| using v8::FunctionTemplate; | ||||
| using v8::Handle; | ||||
| using v8::HandleScope; | ||||
| using v8::Object; | ||||
| using v8::String; | ||||
| using v8::Undefined; | ||||
| using v8::V8; | ||||
| using v8::Value; | ||||
| 
 | ||||
| typedef enum { STOP, RUN, PAUSE } gc_state_t; | ||||
| 
 | ||||
| int64_t interval; | ||||
| gc_state_t state; | ||||
| gc_state_t prev_state; | ||||
| uv_timer_t timer_handle; | ||||
| uv_check_t check_handle; | ||||
| uv_prepare_t prepare_handle; | ||||
| 
 | ||||
| void Timer(uv_timer_t*, int) { | ||||
|   if (V8::IdleNotification()) state = PAUSE; | ||||
| } | ||||
| 
 | ||||
| void Check(uv_check_t*, int) { | ||||
|   prev_state = state; | ||||
| } | ||||
| 
 | ||||
| void Prepare(uv_prepare_t*, int) { | ||||
|   if (state == PAUSE && prev_state == PAUSE) state = RUN; | ||||
|   if (state == RUN) uv_timer_start(&timer_handle, Timer, interval, 0); | ||||
| } | ||||
| 
 | ||||
| Handle<Value> Stop(const Arguments& args) { | ||||
|   state = STOP; | ||||
|   uv_timer_stop(&timer_handle); | ||||
|   uv_check_stop(&check_handle); | ||||
|   uv_prepare_stop(&prepare_handle); | ||||
|   return Undefined(); | ||||
| } | ||||
| 
 | ||||
| Handle<Value> Start(const Arguments& args) { | ||||
|   HandleScope scope; | ||||
|   Stop(args); | ||||
| 
 | ||||
|   interval = args[0]->IsNumber() ? args[0]->IntegerValue() : 0; | ||||
|   if (interval <= 0) interval = 5000;  // Default to 5 seconds.
 | ||||
| 
 | ||||
|   state = RUN; | ||||
|   uv_check_start(&check_handle, Check); | ||||
|   uv_prepare_start(&prepare_handle, Prepare); | ||||
| 
 | ||||
|   return Undefined(); | ||||
| } | ||||
| 
 | ||||
| void Init(Handle<Object> obj) { | ||||
|   HandleScope scope; | ||||
| 
 | ||||
|   uv_timer_init(uv_default_loop(), &timer_handle); | ||||
|   uv_check_init(uv_default_loop(), &check_handle); | ||||
|   uv_prepare_init(uv_default_loop(), &prepare_handle); | ||||
|   uv_unref(reinterpret_cast<uv_handle_t*>(&timer_handle)); | ||||
|   uv_unref(reinterpret_cast<uv_handle_t*>(&check_handle)); | ||||
|   uv_unref(reinterpret_cast<uv_handle_t*>(&prepare_handle)); | ||||
| 
 | ||||
|   obj->Set(String::New("stop"), FunctionTemplate::New(Stop)->GetFunction()); | ||||
|   obj->Set(String::New("start"), FunctionTemplate::New(Start)->GetFunction()); | ||||
| } | ||||
| 
 | ||||
| NODE_MODULE(atom_common_idle_gc, Init) | ||||
| 
 | ||||
| }  // namespace
 | ||||
|  | @ -24,7 +24,6 @@ NODE_EXT_LIST_ITEM(atom_renderer_ipc) | |||
| // Module names start with `atom_common_` can be used by both browser and
 | ||||
| // renderer processes.
 | ||||
| NODE_EXT_LIST_ITEM(atom_common_clipboard) | ||||
| NODE_EXT_LIST_ITEM(atom_common_idle_gc) | ||||
| NODE_EXT_LIST_ITEM(atom_common_id_weak_map) | ||||
| NODE_EXT_LIST_ITEM(atom_common_shell) | ||||
| NODE_EXT_LIST_ITEM(atom_common_v8_util) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Cheng Zhao
				Cheng Zhao