sleep 명령에 대해 질문있습니다.

ulra의 이미지

안녕하세요.

저의 프로그램에서 sleep으로 기다렸다가 실행하는 부분이 있습니다.

그런데 이상하게 sleep(4); 실행해서 지연이 안되고 그냥 바로 실행됩니다.

어떤 이유 때문인가요?

fork로 자식프로세스를 만들고 그 자식 프로세스는 4초단위로 어떤 일을 하게 하였습니다.

lovemyin의 이미지

제가 보기엔 fork()를 하셨다면 부모와 자식이 각각 따로 돌고 있을텐데 자식놈에게 sleep(4)를 하시고 그대로 잘 수행되는데 부모가 찍는 print문을 보시고
안된다고 하시는게 아닐까요???

/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/

ulra의 이미지

자식 프로세스는 4초마다 접속된 클라이언트에 어떤 데이터를 전송하게되어
있습니다.

제가 클라이언트의 패킷을 조사해봤습니다.

4초간격으로 전송되지 않았습니다.

전에는 잘 동작했었습니다.

그런데 제가 자식프로세스가 하는 일을 함수로 만들어서 자식 프로세스가

그 함수를 호출하게 변형만 했을 뿐인데 이런현상이 일어나네요.

OTL 즐!!!! (좌절 금지!!!)

pizza1977의 이미지

혹시 자식프로세스를 계속해서 생성하시는건 아닐까요?

-------------
포탈이는 불사신

lovemyin의 이미지

4초마다 데이터를 전송하신다면 sleep을 수행 안한다면 마구잡이로 전송했을텐데... 클라이언트가 데이터를 못받은거랑 sleep 수행이랑은 상관이없어보이네여...
전송을 했다면 TCP/UDP 어떤것인지... 아니면 그 부분의 소스를 올려주세요...
함수르 뺐다고 sleep이 안된다는건 좀 이상하네여...
자세한 질문 부탁드립니다.

/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/

pynoos의 이미지

sleep의 return 값을 찍어 보세요.

sleep의 return 값이 어쩌면 도움을 줄 수 있을지도 모릅니다.

ulra의 이미지

특정 함수를 넣으면 정상으로 동작하고 특정함수를 빼면 sleep이 지정된 시간동안 지체되지 않네요. sleep이 SIGCHLD에 영향을 받나요?

저는 SIGCHLD에 대해서만 시그널 처리를 했거든요.

OTL 즐!!!! (좌절 금지!!!)

vinus의 이미지

sleep()함수는 특정시간 기다리긴 하지만, sleep()도중 시그널등을 수신하게 되면, sleep()에서 깨어나게 됩니다.

>>>행복한 웃음<<<

pynoos의 이미지

sleep 이 return 될때 자기가 얼마나 더 자야되는지 남은 시간(초)을 되돌립니다. sleep이 0이 아닌 상태로 깨어나면 더 자면 됩니다... cool 하게... ;)

ulra의 이미지

답변 감사드립니다. ^^

좋은 하루 되세요.

OTL 즐!!!! (좌절 금지!!!)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.