Last active
March 25, 2019 07:25
-
-
Save happyj2me/af22fc5fbaa9e4fd16fd5343fe5893a9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"configurations": [ | |
{ | |
"name": "Mac", | |
"includePath": [ | |
"${workspaceFolder}/**", | |
"/Library/Developer/CommandLineTools/usr/include/c++/v1", | |
"/Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include", | |
"/Library/Developer/CommandLineTools/usr/include", | |
"/usr/include", | |
"/usr/local/include", | |
"/usr/local/Cellar/glib/2.60.0/include/glib-2.0", | |
"/usr/local/Cellar/glib/2.60.0/lib/glib-2.0/include", | |
"/usr/local/opt/gettext/include", | |
"/usr/local/Cellar/pcre/8.43/include" | |
], | |
"defines": [], | |
"macFrameworkPath": [ | |
"/System/Library/Frameworks", | |
"/Library/Frameworks" | |
], | |
"compilerPath": "/usr/bin/clang++", | |
"cStandard": "c11", | |
"cppStandard": "c++11", | |
"intelliSenseMode": "clang-x64" | |
} | |
], | |
"version": 4 | |
} | |
{ | |
// Use IntelliSense to learn about possible attributes. | |
// Hover to view descriptions of existing attributes. | |
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | |
"version": "0.2.0", | |
"configurations": [ | |
{ | |
"name": "c/c++ Launch", | |
"type": "cppdbg", | |
"request": "launch", | |
"program": "${workspaceFolder}/a.out", | |
"args": [], | |
"stopAtEntry": false, | |
"cwd": "${workspaceFolder}", | |
"environment": [], | |
"externalConsole": true, | |
"MIMode": "lldb", | |
"preLaunchTask":"c++" | |
}, | |
] | |
} | |
{ | |
"version": "2.0.0", | |
"tasks": [ | |
{ | |
"label": "c++", | |
"command": "g++", | |
"type": "shell", | |
"args": [ | |
"thread.cpp", //当前文件名 | |
"-std=c++11", | |
"-g", | |
"-o", //对象名,不进行编译优化 | |
"${workspaceFolder}/a.out", //当前文件名(去掉扩展名) | |
"`pkg-config", "--libs", "--cflags", "glib-2.0`", | |
], | |
"presentation": { | |
"echo": true, | |
"reveal": "always", | |
"focus": false, | |
"panel": "shared" | |
} | |
} | |
] | |
} | |
#include <glib.h> | |
#include <glib/gprintf.h> | |
#include <unistd.h> | |
#include <errno.h> | |
#include "sys/select.h" | |
#include "sys/time.h" | |
gint64 janus_get_monotonic_time() { | |
struct timespec ts; | |
clock_gettime (CLOCK_MONOTONIC, &ts); | |
return (ts.tv_sec*G_GINT64_CONSTANT(1000000)) + (ts.tv_nsec/G_GINT64_CONSTANT(1000)); | |
} | |
gpointer thread_proc_1(gpointer data) | |
{ | |
struct timeval tv; | |
int err = 0; | |
int i = 0; | |
do | |
{ | |
tv.tv_sec = 6; | |
tv.tv_usec = 0; | |
err = select(0, NULL, NULL, NULL, &tv); | |
} while (err == 0 || errno == EINTR); | |
g_printf("err = %d\n",err); | |
return 0; | |
} | |
int main(int argc, char *argv[]) | |
{ | |
gint64 start = janus_get_monotonic_time(); | |
GError *error; | |
GThread *t1 = g_thread_try_new("gthread_1", thread_proc_1, NULL, &error); | |
g_thread_join(t1); | |
gint64 end = janus_get_monotonic_time(); | |
g_printf("run time:%lld\n",end-start); | |
return 0; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment