Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Levin Zimmermann
go-fuse
Commits
aaa7e243
Commit
aaa7e243
authored
Sep 08, 2011
by
Han-Wen Nienhuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add Has method to HandleMap interface.
parent
c44d05f4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
0 deletions
+20
-0
fuse/handle.go
fuse/handle.go
+14
-0
fuse/handle_test.go
fuse/handle_test.go
+6
-0
No files found.
fuse/handle.go
View file @
aaa7e243
...
...
@@ -23,6 +23,7 @@ type HandleMap interface {
Register
(
obj
*
Handled
,
asInt
interface
{})
uint64
Count
()
int
Forget
(
uint64
)
*
Handled
Has
(
uint64
)
bool
}
type
Handled
struct
{
...
...
@@ -44,6 +45,13 @@ func (me *int32HandleMap) Register(obj *Handled, asInt interface{}) uint64 {
return
uint64
(
handle
)
}
func
(
me
*
int32HandleMap
)
Has
(
h
uint64
)
bool
{
me
.
mutex
.
Lock
()
defer
me
.
mutex
.
Unlock
()
return
me
.
handles
[
uint32
(
h
)]
!=
nil
}
func
(
me
*
int32HandleMap
)
Count
()
int
{
me
.
mutex
.
Lock
()
defer
me
.
mutex
.
Unlock
()
...
...
@@ -158,6 +166,12 @@ func (me *int64HandleMap) Forget(handle uint64) (val *Handled) {
return
val
}
func
(
me
*
int64HandleMap
)
Has
(
handle
uint64
)
bool
{
me
.
mutex
.
Lock
()
defer
me
.
mutex
.
Unlock
()
return
me
.
handles
[
handle
]
!=
nil
}
func
DecodeHandle
(
handle
uint64
)
(
val
*
Handled
)
{
var
check
uint32
if
unsafe
.
Sizeof
(
val
)
==
8
{
...
...
fuse/handle_test.go
View file @
aaa7e243
...
...
@@ -73,6 +73,9 @@ func TestHandleMapBasic(t *testing.T) {
hm
:=
NewHandleMap
(
true
)
h
:=
hm
.
Register
(
v
,
v
)
log
.
Printf
(
"Got handle 0x%x"
,
h
)
if
!
hm
.
Has
(
h
)
{
t
.
Fatal
(
"Does not have handle"
)
}
if
DecodeHandle
(
h
)
!=
v
{
t
.
Fatal
(
"address mismatch"
)
}
...
...
@@ -83,6 +86,9 @@ func TestHandleMapBasic(t *testing.T) {
if
hm
.
Count
()
!=
0
{
t
.
Fatal
(
"count error"
)
}
if
hm
.
Has
(
h
)
{
t
.
Fatal
(
"Still has handle"
)
}
}
func
TestHandleMapMultiple
(
t
*
testing
.
T
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment