Make file based Storage thread safe.
diff --git a/oauth2client/file.py b/oauth2client/file.py
index 12dee91..b72e3c5 100644
--- a/oauth2client/file.py
+++ b/oauth2client/file.py
@@ -9,6 +9,7 @@
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
 import pickle
+import threading
 
 from client import Storage as BaseStorage
 
@@ -18,6 +19,7 @@
 
   def __init__(self, filename):
     self._filename = filename
+    self._lock = threading.Lock()
 
   def get(self):
     """Retrieve Credential from file.
@@ -25,6 +27,7 @@
     Returns:
       oauth2client.client.Credentials
     """
+    self._lock.acquire()
     try:
       f = open(self._filename, 'r')
       credentials = pickle.loads(f.read())
@@ -32,6 +35,7 @@
       credentials.set_store(self.put)
     except:
       credentials = None
+    self._lock.release()
 
     return credentials
 
@@ -41,6 +45,8 @@
     Args:
       credentials: Credentials, the credentials to store.
     """
+    self._lock.acquire()
     f = open(self._filename, 'w')
     f.write(pickle.dumps(credentials))
     f.close()
+    self._lock.release()