Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

Commit

Permalink
Merge pull request #966 from MartinNowak/callWithStackShell
Browse files Browse the repository at this point in the history
require nothrow for callWithStackShell callback
  • Loading branch information
DmitryOlshansky committed Sep 28, 2014
2 parents 3dd38c0 + ffc39c9 commit 3b6e511
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
11 changes: 7 additions & 4 deletions src/core/sys/posix/signal.d
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,9 @@ int sigsuspend(in sigset_t*);
int sigwait(in sigset_t*, int*);
*/

nothrow @nogc
{

version( linux )
{
enum SIG_HOLD = cast(sigfn_t2) 1;
Expand Down Expand Up @@ -1046,7 +1049,7 @@ else
{
static assert(false, "Unsupported platform");
}

}

//
// XOpen (XSI)
Expand Down Expand Up @@ -1882,6 +1885,9 @@ int sigtimedwait(in sigset_t*, siginfo_t*, in timespec*);
int sigwaitinfo(in sigset_t*, siginfo_t*);
*/

nothrow:
@nogc:

version( linux )
{
private enum __SIGEV_MAX_SIZE = 64;
Expand Down Expand Up @@ -1999,9 +2005,6 @@ int pthread_kill(pthread_t, int);
int pthread_sigmask(int, in sigset_t*, sigset_t*);
*/

nothrow:
@nogc:

version( linux )
{
int pthread_kill(pthread_t, int);
Expand Down
16 changes: 8 additions & 8 deletions src/core/thread.d
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ else version( Posix )
}
body
{
void op(void* sp)
void op(void* sp) nothrow
{
// NOTE: Since registers are being pushed and popped from the
// stack, any other stack data used by this function should
Expand Down Expand Up @@ -1815,12 +1815,12 @@ unittest

version( CoreDdoc )
{
/**
* Instruct the thread module, when initialized, to use a different set of
/**
* Instruct the thread module, when initialized, to use a different set of
* signals besides SIGUSR1 and SIGUSR2 for suspension and resumption of threads.
* This function should be called at most once, prior to thread_init().
* This function is Posix-only.
*/
*/
extern (C) void thread_setGCSignals(int suspendSignalNo, int resumeSignalNo)
{
}
Expand All @@ -1831,7 +1831,7 @@ else version( Posix )
__gshared int resumeSignalNumber;

extern (C) void thread_setGCSignals(int suspendSignalNo, int resumeSignalNo)
in
in
{
assert(suspendSignalNumber == 0);
assert(resumeSignalNumber == 0);
Expand Down Expand Up @@ -1873,7 +1873,7 @@ extern (C) void thread_init()
if( suspendSignalNumber == 0 )
{
suspendSignalNumber = SIGUSR1;
}
}

if( resumeSignalNumber == 0 )
{
Expand Down Expand Up @@ -2222,12 +2222,12 @@ version (PPC64) version = ExternStackShell;

version (ExternStackShell)
{
extern(D) public void callWithStackShell(scope void delegate(void* sp) fn) nothrow;
extern(D) public void callWithStackShell(scope void delegate(void* sp) nothrow fn) nothrow;
}
else
{
// Calls the given delegate, passing the current thread's stack pointer to it.
private void callWithStackShell(scope void delegate(void* sp) fn) nothrow
private void callWithStackShell(scope void delegate(void* sp) nothrow fn) nothrow
in
{
assert(fn);
Expand Down

0 comments on commit 3b6e511

Please sign in to comment.