Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit38081fd

Browse files
committed
Change PG_DELAY from msec to usec and use it consistenly rather than
select(). Add Win32 Sleep() for delay.
1 parenta76c86c commit38081fd

File tree

4 files changed

+32
-37
lines changed

4 files changed

+32
-37
lines changed

‎src/backend/access/transam/xact.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.159 2004/01/07 18:56:24 neilc Exp $
11+
* $PostgreSQL: pgsql/src/backend/access/transam/xact.c,v 1.160 2004/01/09 21:08:46 momjian Exp $
1212
*
1313
* NOTES
1414
*Transaction aborts can now occur two ways:
@@ -561,13 +561,7 @@ RecordTransactionCommit(void)
561561
*/
562562
if (CommitDelay>0&&enableFsync&&
563563
CountActiveBackends() >=CommitSiblings)
564-
{
565-
structtimevaldelay;
566-
567-
delay.tv_sec=0;
568-
delay.tv_usec=CommitDelay;
569-
(void)select(0,NULL,NULL,NULL,&delay);
570-
}
564+
PG_USLEEP(CommitDelay);
571565

572566
XLogFlush(recptr);
573567
}

‎src/backend/storage/buffer/bufmgr.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.151 2004/01/07 18:56:27 neilc Exp $
11+
* $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.152 2004/01/09 21:08:49 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -1031,9 +1031,7 @@ BufferBackgroundWriter(void)
10311031
* there was nothing to do at all.
10321032
*/
10331033
if (n>0)
1034-
{
1035-
PG_DELAY(BgWriterDelay);
1036-
}
1034+
PG_USLEEP(BgWriterDelay*1000);
10371035
else
10381036
sleep(10);
10391037
}

‎src/backend/storage/lmgr/s_lock.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.23 2003/12/27 20:58:58 tgl Exp $
12+
* $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.24 2004/01/09 21:08:49 momjian Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -19,7 +19,7 @@
1919
#include<unistd.h>
2020

2121
#include"storage/s_lock.h"
22-
22+
#include"miscadmin.h"
2323

2424
/*
2525
* s_lock_stuck() - complain about a stuck spinlock
@@ -84,7 +84,6 @@ s_lock(volatile slock_t *lock, const char *file, int line)
8484
intspins=0;
8585
intdelays=0;
8686
intcur_delay=MIN_DELAY_CSEC;
87-
structtimevaldelay;
8887

8988
while (TAS(lock))
9089
{
@@ -97,9 +96,7 @@ s_lock(volatile slock_t *lock, const char *file, int line)
9796
if (++delays>NUM_DELAYS)
9897
s_lock_stuck(lock,file,line);
9998

100-
delay.tv_sec=cur_delay /100;
101-
delay.tv_usec= (cur_delay %100)*10000;
102-
(void)select(0,NULL,NULL,NULL,&delay);
99+
PG_USLEEP(cur_delay*10000);
103100

104101
#if defined(S_LOCK_TEST)
105102
fprintf(stdout,"*");

‎src/include/miscadmin.h

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
1313
* Portions Copyright (c) 1994, Regents of the University of California
1414
*
15-
* $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.142 2004/01/06 23:15:22 momjian Exp $
15+
* $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.143 2004/01/09 21:08:50 momjian Exp $
1616
*
1717
* NOTES
1818
* some of the information in this file should be moved to
@@ -75,34 +75,40 @@ extern volatile uint32 CritSectionCount;
7575
externvoidProcessInterrupts(void);
7676

7777
#defineCHECK_FOR_INTERRUPTS() \
78-
do { \
79-
if (InterruptPending) \
80-
ProcessInterrupts(); \
81-
} while(0)
78+
do { \
79+
if (InterruptPending) \
80+
ProcessInterrupts(); \
81+
} while(0)
8282

8383
#defineHOLD_INTERRUPTS() (InterruptHoldoffCount++)
8484

8585
#defineRESUME_INTERRUPTS() \
86-
do { \
87-
Assert(InterruptHoldoffCount > 0); \
88-
InterruptHoldoffCount--; \
89-
} while(0)
86+
do { \
87+
Assert(InterruptHoldoffCount > 0); \
88+
InterruptHoldoffCount--; \
89+
} while(0)
9090

9191
#defineSTART_CRIT_SECTION() (CritSectionCount++)
9292

9393
#defineEND_CRIT_SECTION() \
94-
do { \
95-
Assert(CritSectionCount > 0); \
96-
CritSectionCount--; \
97-
} while(0)
98-
99-
#definePG_DELAY(_msec) \
100-
{ \
94+
do { \
95+
Assert(CritSectionCount > 0); \
96+
CritSectionCount--; \
97+
} while(0)
98+
99+
#definePG_USLEEP(_usec) \
100+
do { \
101+
#ifndef WIN32
102+
/* This will overflow on systems with 32-bit ints for > ~2000 secs */ \
101103
structtimevaldelay; \
102-
delay.tv_sec = (_msec) / 1000; \
103-
delay.tv_usec = ((_msec) % 1000) * 1000; \
104+
\
105+
delay.tv_sec= (_usec) /1000000; \
106+
delay.tv_usec= ((_usec) %1000000); \
104107
(void)select(0,NULL,NULL,NULL,&delay); \
105-
}
108+
#else
109+
Sleep(_usec<500) ?1 : (_usec+500)/1000);
110+
#endif
111+
}while(0)
106112

107113
/*****************************************************************************
108114
* globals.h -- *

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp