Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Wallet
bitcoinj
Commits
69cdfcbe
Commit
69cdfcbe
authored
Sep 06, 2018
by
anw
Browse files
SPVBlockStore: Remove mmap hack for Windows (blocking maven releases)
parent
38aa38ac
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
43 deletions
+0
-43
core/src/main/java/org/bitcoinj/store/SPVBlockStore.java
core/src/main/java/org/bitcoinj/store/SPVBlockStore.java
+0
-4
core/src/main/java/org/bitcoinj/store/WindowsMMapHack.java
core/src/main/java/org/bitcoinj/store/WindowsMMapHack.java
+0
-39
No files found.
core/src/main/java/org/bitcoinj/store/SPVBlockStore.java
View file @
69cdfcbe
...
...
@@ -278,10 +278,6 @@ public class SPVBlockStore implements BlockStore {
public
void
close
()
throws
BlockStoreException
{
try
{
buffer
.
force
();
if
(
System
.
getProperty
(
"os.name"
).
toLowerCase
().
contains
(
"win"
))
{
log
.
info
(
"Windows mmap hack: Forcing buffer cleaning"
);
WindowsMMapHack
.
forceRelease
(
buffer
);
}
buffer
=
null
;
// Allow it to be GCd and the underlying file mapping to go away.
randomAccessFile
.
close
();
}
catch
(
IOException
e
)
{
...
...
core/src/main/java/org/bitcoinj/store/WindowsMMapHack.java
deleted
100644 → 0
View file @
38aa38ac
/*
* Copyright by the original author or 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
org.bitcoinj.store
;
import
sun.misc.*
;
import
sun.nio.ch.*
;
import
java.nio.*
;
/**
* <p>This class knows how to force an mmap'd ByteBuffer to reliquish its file handles before it becomes garbage collected,
* by exploiting implementation details of the HotSpot JVM implementation.</p>
*
* <p>This is required on Windows because otherwise an attempt to delete a file that is still mmapped will fail. This can
* happen when a user requests a "restore from seed" function, which involves deleting and recreating the chain file.
* At some point we should stop using mmap in SPVBlockStore and we can then delete this class.</p>
*
* <p>It is a separate class to avoid hitting unknown imports when running on other JVMs.</p>
*/
public
class
WindowsMMapHack
{
public
static
void
forceRelease
(
MappedByteBuffer
buffer
)
{
Cleaner
cleaner
=
((
DirectBuffer
)
buffer
).
cleaner
();
if
(
cleaner
!=
null
)
cleaner
.
clean
();
}
}
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