[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37428] Re: [ruby-core:20448] [Bug #727] Signal(CLD) seems not to work on OS X

From: "Yugui (Yuki Sonoda)" <yugui@...>
Date: 2008-12-13 12:53:00 UTC
List: ruby-dev #37428
> Errno::EINTRはProcess.waitが発生させています。これは結局waitpid(2)がエ
> ラーを返すためのようです。そこで、添付のようなコードで実験してみると同じ
> ようにwaitpidがEINTRで失敗します。これはsigaction(2)のSA_RESTARTの項に書
> かれている挙動です。よって、次のようにして解決できます。

添付し忘れました。

-- 
Yugui <yugui@yugui.jp>
http://yugui.jp
私は私をDumpする

Attachments (1)

test.c (574 Bytes, text/x-csrc)
#include <stdio.h>
#include <sys/wait.h>
#include <signal.h>
#include <errno.h>

void sighandler(int signum) {}
int main(void)
{
    int status;
    pid_t pid;
    struct sigaction sigact, old;

    sigact.sa_sigaction = sighandler;
    sigact.sa_flags = SA_SIGINFO;
    if (sigaction(SIGCHLD, &sigact, &old)) {
        fprintf(stderr, "sigaction failed: %s\n", strerror(errno));
    }

    if (pid = fork()) {
        if (waitpid(pid, &status, 0) < 0) {
            fprintf(stderr, "waitpid failed: %s\n", strerror(errno));
        }
    }
    else {
    }
    return 0;
}

In This Thread