/*
 * Kiss - A refined core library for D programming language.
 *
 * Copyright (C) 2015-2018  Shanghai Putao Technology Co., Ltd
 *
 * Developer: HuntLabs.cn
 *
 * Licensed under the Apache-2.0 License.
 *
 */
 
module kiss.util.thread;
import core.thread;

version (Posix)
{
	version (linux)
	{
		version (X86_64) // X86_64
		{
			enum __NR_gettid = 186;
		}
		else
		{
			enum __NR_gettid = 224;
		}
	}
    else version (OSX)
	{
		enum __NR_gettid = 372;
	}
    else
        static assert(false, "__NR_gettid undefined");

	import core.sys.posix.sys.types : pid_t;

	extern (C) nothrow @nogc pid_t syscall(int d);
	pid_t getTid()
	{
		return syscall(__NR_gettid);
	}
}
else 
{
    ThreadID getTid()
	{
		return Thread.getThis.id;
	}
}