Skip to content

Commit 65e442b

Browse files
committed
Fix up locking
1 parent 7aa4e39 commit 65e442b

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

pkg/client/fake/client.go

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -592,11 +592,12 @@ func (t versionedTracker) updateObject(gvr schema.GroupVersionResource, obj runt
592592
}
593593

594594
func (c *fakeClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error {
595-
c.schemeLock.RLock()
596-
defer c.schemeLock.RUnlock()
597595
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
598596
return err
599597
}
598+
599+
c.schemeLock.RLock()
600+
defer c.schemeLock.RUnlock()
600601
gvr, err := getGVRFromObject(obj, c.scheme)
601602
if err != nil {
602603
return err
@@ -634,6 +635,10 @@ func (c *fakeClient) Watch(ctx context.Context, list client.ObjectList, opts ...
634635
if err := c.addToSchemeIfUnknownAndUnstructured(list); err != nil {
635636
return nil, err
636637
}
638+
639+
c.schemeLock.RLock()
640+
defer c.schemeLock.RUnlock()
641+
637642
gvk, err := apiutil.GVKForObject(list, c.scheme)
638643
if err != nil {
639644
return nil, err
@@ -649,11 +654,12 @@ func (c *fakeClient) Watch(ctx context.Context, list client.ObjectList, opts ...
649654
}
650655

651656
func (c *fakeClient) List(ctx context.Context, obj client.ObjectList, opts ...client.ListOption) error {
652-
c.schemeLock.RLock()
653-
defer c.schemeLock.RUnlock()
654657
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
655658
return err
656659
}
660+
661+
c.schemeLock.RLock()
662+
defer c.schemeLock.RUnlock()
657663
gvk, err := apiutil.GVKForObject(obj, c.scheme)
658664
if err != nil {
659665
return err
@@ -821,13 +827,13 @@ func (c *fakeClient) IsObjectNamespaced(obj runtime.Object) (bool, error) {
821827
}
822828

823829
func (c *fakeClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error {
824-
c.schemeLock.RLock()
825-
defer c.schemeLock.RUnlock()
826-
827830
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
828831
return err
829832
}
830833

834+
c.schemeLock.RLock()
835+
defer c.schemeLock.RUnlock()
836+
831837
createOptions := &client.CreateOptions{}
832838
createOptions.ApplyOptions(opts)
833839

@@ -864,12 +870,13 @@ func (c *fakeClient) Create(ctx context.Context, obj client.Object, opts ...clie
864870
}
865871

866872
func (c *fakeClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error {
867-
c.schemeLock.RLock()
868-
defer c.schemeLock.RUnlock()
869-
870873
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
871874
return err
872875
}
876+
877+
c.schemeLock.RLock()
878+
defer c.schemeLock.RUnlock()
879+
873880
gvr, err := getGVRFromObject(obj, c.scheme)
874881
if err != nil {
875882
return err
@@ -915,12 +922,13 @@ func (c *fakeClient) Delete(ctx context.Context, obj client.Object, opts ...clie
915922
}
916923

917924
func (c *fakeClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error {
918-
c.schemeLock.RLock()
919-
defer c.schemeLock.RUnlock()
920-
921925
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
922926
return err
923927
}
928+
929+
c.schemeLock.RLock()
930+
defer c.schemeLock.RUnlock()
931+
924932
gvk, err := apiutil.GVKForObject(obj, c.scheme)
925933
if err != nil {
926934
return err
@@ -970,12 +978,13 @@ func (c *fakeClient) Update(ctx context.Context, obj client.Object, opts ...clie
970978
}
971979

972980
func (c *fakeClient) update(obj client.Object, isStatus bool, opts ...client.UpdateOption) error {
973-
c.schemeLock.RLock()
974-
defer c.schemeLock.RUnlock()
975-
976981
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
977982
return err
978983
}
984+
985+
c.schemeLock.RLock()
986+
defer c.schemeLock.RUnlock()
987+
979988
updateOptions := &client.UpdateOptions{}
980989
updateOptions.ApplyOptions(opts)
981990

@@ -1004,13 +1013,13 @@ func (c *fakeClient) Patch(ctx context.Context, obj client.Object, patch client.
10041013
}
10051014

10061015
func (c *fakeClient) patch(obj client.Object, patch client.Patch, opts ...client.PatchOption) error {
1007-
c.schemeLock.RLock()
1008-
defer c.schemeLock.RUnlock()
1009-
10101016
if err := c.addToSchemeIfUnknownAndUnstructured(obj); err != nil {
10111017
return err
10121018
}
10131019

1020+
c.schemeLock.RLock()
1021+
defer c.schemeLock.RUnlock()
1022+
10141023
patchOptions := &client.PatchOptions{}
10151024
patchOptions.ApplyOptions(opts)
10161025

0 commit comments

Comments
 (0)