File tree 1 file changed +9
-1
lines changed
1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -118,6 +118,9 @@ ReplicationSlotsShmemSize(void)
118
118
size = add_size (size ,
119
119
mul_size (max_replication_slots , sizeof (ReplicationSlot )));
120
120
121
+ /* Replication Slots LWLock structures */
122
+ size = add_size (size , LWLockTrancheShmemSize (max_replication_slots ));
123
+
121
124
return size ;
122
125
}
123
126
@@ -139,17 +142,22 @@ ReplicationSlotsShmemInit(void)
139
142
if (!found )
140
143
{
141
144
int i ;
145
+ LWLockPadded * locks ;
142
146
143
147
/* First time through, so initialize */
144
148
MemSet (ReplicationSlotCtl , 0 , ReplicationSlotsShmemSize ());
145
149
150
+ /* Create lwlocks tranche for replication slots */
151
+ LWLockCreateTranche ("ReplicationSlotLocks" , max_replication_slots ,
152
+ & locks );
153
+
146
154
for (i = 0 ; i < max_replication_slots ; i ++ )
147
155
{
148
156
ReplicationSlot * slot = & ReplicationSlotCtl -> replication_slots [i ];
149
157
150
158
/* everything else is zeroed by the memset above */
151
159
SpinLockInit (& slot -> mutex );
152
- slot -> io_in_progress_lock = LWLockAssign () ;
160
+ slot -> io_in_progress_lock = & locks [ i ]. lock ;
153
161
}
154
162
}
155
163
}
You can’t perform that action at this time.
0 commit comments