comparison src/os/unix/rfork_thread.S @ 32:da8c190bdaba NGINX_0_1_16

nginx 0.1.16 *) Bugfix: if the response were transferred by chunks, then on the HEAD request the final chunk was issued. *) Bugfix: the "Connection: keep-alive" header were issued, even if the keepalive_timeout directive forbade the keep-alive use. *) Bugfix: the errors in the ngx_http_fastcgi_module caused the segmentation faults. *) Bugfix: the compressed response encrypted by SSL may not transferred complete. *) Bugfix: the TCP-specific TCP_NODELAY, TCP_NOPSUH, and TCP_CORK options, are not used for the unix domain sockets. *) Feature: the rewrite directive supports the arguments rewriting. *) Bugfix: the response code 400 was returned for the POST request with the "Content-Length: 0" header; bug appeared in 0.1.14.
author Igor Sysoev <http://sysoev.ru>
date Tue, 25 Jan 2005 00:00:00 +0300
parents f0b350454894
children d0f7a625f27c
comparison
equal deleted inserted replaced
31:1b17dd824438 32:da8c190bdaba
1 1
2 /* 2 /*
3 * Copyright (C) Igor Sysoev 3 * Copyright (C) Igor Sysoev
4 */ 4 */
5
6 5
7 6
8 #include <sys/syscall.h> 7 #include <sys/syscall.h>
9 #include <machine/asm.h> 8 #include <machine/asm.h>
10 9
17 ENTRY(rfork_thread) 16 ENTRY(rfork_thread)
18 push %ebp 17 push %ebp
19 mov %esp, %ebp 18 mov %esp, %ebp
20 push %esi 19 push %esi
21 20
22 mov 12(%ebp), %esi # the stack address 21 mov 12(%ebp), %esi # the thread stack address
23 22
24 sub $4, %esi 23 sub $4, %esi
25 mov 20(%ebp), %eax # the thread argument 24 mov 20(%ebp), %eax # the thread argument
26 mov %eax, (%esi) 25 mov %eax, (%esi)
27 26
28 sub $4, %esi 27 sub $4, %esi
29 mov 16(%ebp), %eax # the start thread address 28 mov 16(%ebp), %eax # the thread start address
30 mov %eax, (%esi) 29 mov %eax, (%esi)
31 30
32 push 8(%ebp) # rfork(2) flags 31 push 8(%ebp) # rfork(2) flags
33 push $0 32 push $0
34 mov $SYS_rfork, %eax 33 mov $SYS_rfork, %eax
39 jne child 38 jne child
40 39
41 parent: 40 parent:
42 add $8, %esp 41 add $8, %esp
43 pop %esi 42 pop %esi
44 mov %ebp, %esp 43 leave
45 pop %ebp
46 ret 44 ret
47 45
48 child: 46 child:
49 mov %esi, %esp 47 mov %esi, %esp
50 pop %eax 48 pop %eax
57 KERNCALL 55 KERNCALL
58 56
59 error: 57 error:
60 add $8, %esp 58 add $8, %esp
61 pop %esi 59 pop %esi
62 mov %ebp, %esp 60 leave
63 pop %ebp
64 PIC_PROLOGUE 61 PIC_PROLOGUE
65 62
66 /* libc's cerror: jmp PIC_PLT(HIDENAME(cerror)) */ 63 /* libc's cerror: jmp PIC_PLT(HIDENAME(cerror)) */
67 64
68 push %eax 65 push %eax