aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/dist.h
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2010-10-19 14:31:31 +0200
committerRickard Green <[email protected]>2010-11-02 13:39:50 +0100
commit9fb85488909f45d65409f3d8158398f6ad3bbbf2 (patch)
tree76b47deac61cda333bb94babb23cf90cb98d34bd /erts/emulator/beam/dist.h
parent158ed71a5ddc5050809723a214a8d8c841022871 (diff)
downloadotp-9fb85488909f45d65409f3d8158398f6ad3bbbf2.tar.gz
otp-9fb85488909f45d65409f3d8158398f6ad3bbbf2.tar.bz2
otp-9fb85488909f45d65409f3d8158398f6ad3bbbf2.zip
Be less eager to set dist entry in busy state
The runtime system is now less eager to suspend processes sending messages over the distribution. The default value of the distribution buffer busy limit has also been increased from 128 KB to 1 MB. This in order to improve throughput.
Diffstat (limited to 'erts/emulator/beam/dist.h')
-rw-r--r--erts/emulator/beam/dist.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/dist.h b/erts/emulator/beam/dist.h
index 28cdd05c3c..64caf34550 100644
--- a/erts/emulator/beam/dist.h
+++ b/erts/emulator/beam/dist.h
@@ -99,7 +99,7 @@ typedef struct {
#define ERTS_DE_IS_CONNECTED(DEP) \
(!ERTS_DE_IS_NOT_CONNECTED((DEP)))
-#define ERTS_DE_BUSY_LIMIT (128*1024)
+#define ERTS_DE_BUSY_LIMIT (1024*1024)
extern int erts_dist_buf_busy_limit;
extern int erts_is_alive;
@@ -154,10 +154,10 @@ erts_dsig_prepare(ErtsDSigData *dsdp,
}
if (no_suspend) {
failure = ERTS_DSIG_PREP_CONNECTED;
- erts_smp_spin_lock(&dep->qlock);
+ erts_smp_mtx_lock(&dep->qlock);
if (dep->qflgs & ERTS_DE_QFLG_BUSY)
failure = ERTS_DSIG_PREP_WOULD_SUSPEND;
- erts_smp_spin_unlock(&dep->qlock);
+ erts_smp_mtx_unlock(&dep->qlock);
if (failure == ERTS_DSIG_PREP_WOULD_SUSPEND)
goto fail;
}