diff options
author | Andrei Vagin <avagin@gmail.com> | 2021-07-26 15:41:11 -0700 |
---|---|---|
committer | Andrei Vagin <avagin@gmail.com> | 2021-08-04 21:17:21 -0700 |
commit | 376e8904320cff0b9594dc0388f51daded756cc4 (patch) | |
tree | ccb51422368570056e224da8cfec9698fa175673 /pkg/atomicbitops/aligned_test.go | |
parent | a42d3fd0aeb6c67c3fd2fb851845a1f88a298972 (diff) |
Reduce overhead of AlignedAtomic types
AlignedAtomicUint64 is 15 bytes and it takes 16 bytes in structures. On
32-bit systems, variables and structure fields is guaranteed to be
32-bit aligned and this means that we need only 12 bytes to find 8
contiguous bytes.
Diffstat (limited to 'pkg/atomicbitops/aligned_test.go')
-rw-r--r-- | pkg/atomicbitops/aligned_test.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/pkg/atomicbitops/aligned_test.go b/pkg/atomicbitops/aligned_test.go new file mode 100644 index 000000000..e7123d2b8 --- /dev/null +++ b/pkg/atomicbitops/aligned_test.go @@ -0,0 +1,35 @@ +// Copyright 2021 The gVisor Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package atomicbitops + +import ( + "testing" +) + +func TestAtomiciInt64(t *testing.T) { + v := struct { + v8 int8 + v64 AlignedAtomicInt64 + }{} + v.v64.Add(1) +} + +func TestAtomicUint64(t *testing.T) { + v := struct { + v8 uint8 + v64 AlignedAtomicUint64 + }{} + v.v64.Add(1) +} |