parameters: ()
return_statement: return {}
docstring: Returns the CPU info gathered by querying the X86 cpuid register in a new process.
  	Returns {} on non X86 cpus.
  	Returns {} if SELinux is in enforcing mode.
docstring_summary: Returns the CPU info gathered by querying the X86 cpuid register in a new process.
  	Returns {} on non X86 cpus.
  	Returns {} if SELinux is in enforcing mode.
docstring_tokens: Returns the CPU info gathered by querying the X86 cpuid register in a new process . Returns {} on non X86 cpus . Returns {} if SELinux is in enforcing mode .
function: def _get_cpu_info_from_cpuid():
  	'''
  	Returns the CPU info gathered by querying the X86 cpuid register in a new process.
  	Returns {} on non X86 cpus.
  	Returns {} if SELinux is in enforcing mode.
  	'''
  	from multiprocessing import Process, Queue
  
  	# Return {} if can't cpuid
  	if not DataSource.can_cpuid:
  		return {}
  
  	# Get the CPU arch and bits
  	arch, bits = _parse_arch(DataSource.raw_arch_string)
  
  	# Return {} if this is not an X86 CPU
  	if not arch in ['X86_32', 'X86_64']:
  		return {}
  
  	try:
  		# Start running the function in a subprocess
  		queue = Queue()
  		p = Process(target=_actual_get_cpu_info_from_cpuid, args=(queue,))
  		p.start()
  
  		# Wait for the process to end, while it is still alive
  		while p.is_alive():
  			p.join(0)
  
  		# Return {} if it failed
  		if p.exitcode != 0:
  			return {}
  
  		# Return the result, only if there is something to read
  		if not queue.empty():
  			output = queue.get()
  			return _b64_to_obj(output)
  	except:
  		pass
  
  	# Return {} if everything failed
  	return {}
function_tokens: def _get_cpu_info_from_cpuid ( ) : from multiprocessing import Process , Queue # Return {} if can't cpuid if not DataSource . can_cpuid : return { } # Get the CPU arch and bits arch , bits = _parse_arch ( DataSource . raw_arch_string ) # Return {} if this is not an X86 CPU if not arch in [ 'X86_32' , 'X86_64' ] : return { } try : # Start running the function in a subprocess queue = Queue ( ) p = Process ( target = _actual_get_cpu_info_from_cpuid , args = ( queue , ) ) p . start ( ) # Wait for the process to end, while it is still alive while p . is_alive ( ) : p . join ( 0 ) # Return {} if it failed if p . exitcode != 0 : return { } # Return the result, only if there is something to read if not queue . empty ( ) : output = queue . get ( ) return _b64_to_obj ( output ) except : pass # Return {} if everything failed return { }