blob: 7e2eabf51b429fcb53de3e1a5772795564757fe4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
//===-- Platform.cpp --------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// this file is only relevant for Visual C++
#if defined(_MSC_VER)
#include <process.h>
#include <assert.h>
#include "Platform.h"
// the control handler or SIGINT handler
static sighandler_t _ctrlHandler = NULL;
// the default console control handler
BOOL WINAPI CtrlHandler(DWORD ctrlType)
{
if (_ctrlHandler != NULL)
{
_ctrlHandler(SIGINT);
return TRUE;
}
return FALSE;
}
sighandler_t
signal(int sig, sighandler_t sigFunc)
{
switch (sig)
{
case (SIGINT):
{
_ctrlHandler = sigFunc;
SetConsoleCtrlHandler(CtrlHandler, TRUE);
}
break;
default:
assert(!"Not implemented!");
}
return 0;
}
#endif
|