| 
									
										
										
										
											2010-03-29 02:23:21 -04:00
										 |  |  | #include "master.hpp"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace factor | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-29 02:27:45 -04:00
										 |  |  | pthread_key_t current_vm_tls_key; | 
					
						
							| 
									
										
										
										
											2010-03-29 02:23:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | void init_mvm() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if(pthread_key_create(¤t_vm_tls_key, NULL) != 0) | 
					
						
							|  |  |  | 		fatal_error("pthread_key_create() failed",0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void register_vm_with_thread(factor_vm *vm) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	pthread_setspecific(current_vm_tls_key,vm); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-19 18:39:44 -04:00
										 |  |  | factor_vm *current_vm_p() | 
					
						
							| 
									
										
										
										
											2010-03-29 02:23:21 -04:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-10-26 19:22:42 -04:00
										 |  |  | 	return (factor_vm*)pthread_getspecific(current_vm_tls_key); | 
					
						
							| 
									
										
										
										
											2010-03-29 02:23:21 -04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |