diff options
author | Matthew Fredrickson <creslin@digium.com> | 2007-11-06 22:01:10 +0000 |
---|---|---|
committer | Matthew Fredrickson <creslin@digium.com> | 2007-11-06 22:01:10 +0000 |
commit | ebf9f0bc0ed4354c31efc11c92c8f7e557f4d3ec (patch) | |
tree | 5055c30cadcd2f50db976b1986e075bf684180e3 | |
parent | 9f08e7e132f767dee502173b12149806f7ffbd49 (diff) |
Add some more locking as well as API update for libss7 for new transport types
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | channels/chan_zap.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index bf416c7a8..80d7b93f1 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -8683,10 +8683,15 @@ static void *ss7_linkset(void *data) } } - if (pollers[i].revents & POLLIN) + if (pollers[i].revents & POLLIN) { + ast_mutex_lock(&linkset->lock); res = ss7_read(ss7, pollers[i].fd); + ast_mutex_unlock(&linkset->lock); + } if (pollers[i].revents & POLLOUT) { + ast_mutex_lock(&linkset->lock); res = ss7_write(ss7, pollers[i].fd); + ast_mutex_unlock(&linkset->lock); if (res < 0) { ast_log(LOG_ERROR, "Error in write %s", strerror(errno)); } @@ -11771,7 +11776,7 @@ static int linkset_addsigchan(int sigchan) return -1; } - ss7_add_link(link->ss7, link->fds[curfd]); + ss7_add_link(link->ss7, SS7_TRANSPORT_ZAP, link->fds[curfd]); link->numsigchans++; memset(&si, 0, sizeof(si)); |